2012-04-25 73 views
1

這段代碼有什麼問題?mysql錯誤的列增量

$core->query("UPDATE games SET hits = hits + 1 WHERE id=".intval($id).";"); 

hits incerements by 2 and sometimes by 3!我的意思是例如命中= 3;當我稱這個函數時,命中將是5,有時候是6! (加2和3代替1)。

mysql表類型是MyISAM。

查詢功能是:

function query($query) { 


    $this->error=""; 
    $this->[email protected]$this->link->query($query); 
    if(!$this->result) { 
     $this->[email protected]$this->link->error; 
     return FALSE; 
    } 

    return $this->result; 
} 

鏈接:

$link = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME); 
+0

添加更多詳情。 – m3hdi 2012-04-25 10:43:48

+0

在過去,當我讀到這些問題時,解釋a)始終是代碼被執行了兩次,三次...... b)絕大多數是因爲客戶多次請求資源,c)更多的時候是由於瀏覽器插件而發生(例如,在某些情況下,螢火蟲被稱爲請求雙合) – VolkerK 2012-04-25 10:44:45

+1

http://www.sqlfiddle.com/#!2/d2762/1 mysql代碼運行良好,據我所知。我和VolkerK一起,確保它沒有被調用兩次。 – craniumonempty 2012-04-25 10:47:43

回答

1

的SQL代碼看起來是正確的,所以它必須是導致問題的情況下。

您可能會將代碼放入每頁調用兩次或三次的元素中?如果不明確,通過包含或子程序結構?

0

看來你的查詢是正確的,但可能是這個函數調用多個時間相同的$id的值。請檢查此..

謝謝

0

這是從該頁上的閃存。