0
我遇到了一個問題,那就是我。 我有一個非常簡單的表(MyISAM),我有一個字段「count(INT)(11)」MySQL - 增加一個現有值
這只是一個計數器,每次查看一個產品/項目時都會增加。 問題是查詢遞增2而不是1.
即, Actualfield value = 10
比我運行: mysql_query(「update table_test set count = count + 1 where id = 1」);
領域的計數值變爲12,而不是11
我想,也許我的腳本運行過程中出現了2次查詢,然後我做了一個乾淨的文件與該行:
$con = mysql_connect("localhot","user","pass");
mysql_select_db("database");
mysql_query("update table_test set count = count+1 where id = 1");
沒有更多的文件..它仍然添加2 insted 1. 但如果我複製此查詢並使用Phpmyadmin運行它的工作。
任何人都知道發生了什麼?
感謝名單非常 小子認爲 塔西斯弗洛倫西奧
這是一個完整的代碼我使用:
include 'includes/constants.php'; //just db_user, db_pass and connection
include 'includes/connect.php';
//here i select the actual count value
$result = mysql_query("select count from pictures where id = 6909") or die (mysql_error()." - [select count from pictures where id = 6909]");
$row = mysql_fetch_array($result);
$aux = (int)$row['viewed'] + 1; // increment
mysql_query("UPDATE pictures SET viewed = {$aux} WHERE id = 6909");
而且我已經嘗試:
mysql_query("UPDATE pictures SET viewed = viewed+1 WHERE id = 6909");
如果我運行文件使用這樣的查詢: 更新圖片SET查看= 15其中id = 6909
其中我指定要更新的值,工作。
可能是從您的網絡瀏覽器發送的2X個請求。你能分享你的相關代碼嗎? – Sadat 2010-07-21 15:57:06
事實上,查詢HAS運行兩次以獲得此信息,可能是其他地方的邏輯編碼錯誤或「雙」請求(檢查訪問日誌中的哪一個) – Wrikken 2010-07-21 16:07:47
這是我的想法,但它是一個乾淨的文件,即使不打印任何輸出。我只是按F5來運行上面的行。我已經更新了上面的代碼,所以..這就是我正在運行的。該文件放置在我的根目錄下。 !?!? – Varois 2010-07-21 16:13:20