$result53543534 = mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'")
or die(mysql_error());
但不更新。檢查$battle_get['username']
和用戶名在那裏。 我沒有得到任何錯誤或任何東西只是不添加...mysql查詢不工作沒有錯誤任何東西
任何幫助將是非常好的,在此先感謝
$result53543534 = mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'")
or die(mysql_error());
但不更新。檢查$battle_get['username']
和用戶名在那裏。 我沒有得到任何錯誤或任何東西只是不添加...mysql查詢不工作沒有錯誤任何東西
任何幫助將是非常好的,在此先感謝
你忘了提交查詢的數據庫,嘗試交易
mysql_query("START TRANSACTION");
mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'");
mysql_query("COMMIT");
看看從mysql_affected_rows()
結果是:
if (! $result53543534 = mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'")) {
die(mysql_error());
} else {
echo "Number of rows affected: " . mysql_affected_rows() . "<br>";
}
我可能沒有完全正確的語法,但我希望你明白。如果結果爲0,則不會指定WHERE
語法,因此它實際上是指任何行。
如果結果大於0,那麼如果您認爲它不影響任何行,則會誤認爲。它可能不會影響您認爲應該的行,但這是另一個問題。
另外,echo
你的sql語句,所以你可以真正看到它在做什麼。
另外,請將該回顯的sql語句並在命令行客戶端中運行,或者PHPMyAdmin更好地瞭解發生了什麼。 – user151841 2011-05-31 17:47:26
使用該代碼獲取白頁 – nick 2011-05-31 17:55:26
我認爲我修復了語法錯誤,請再試一次。如果沒有,你可以隨時編寫你自己的代碼,調用'mysql_affected_rows()':) – user151841 2011-05-31 18:06:40
我建議將代碼更改爲如下,它將允許您檢查sql查詢。嘗試測試sql查詢來查看它是否運行。你可能也想在你的mysql控制檯上運行DESCRIBE用戶來查看你得到的信息。
$sql = "UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'"
echo $sql;
if (! $result53543534 = mysql_query($sql)) {
die(mysql_error());
} else {
echo "Number of rows affected: " . mysql_affected_rows() . "<br>";
}
在您使用的連接中爲用戶授予UPDATE權限。僅僅因爲用戶能夠進行SELECT和INSERT,並不意味着他們也可以自動更新,您需要明確授予他們UPDATE的權限。而且mysql_error()也不會顯示任何錯誤,因爲你的SQL語句是正確的,因此不會顯示錯誤。
您在電子郵件字段中使用用戶名?有可能SQL沒有找到具有該「email」地址的行。 – 2011-05-31 17:04:22
電子郵件應該是用戶名,對不對?你有沒有檢查它實際上匹配的東西? – 2011-05-31 17:04:42
PHP在語句結尾處是否需要分號 - 'UPDATE blah de blah WHERE email ='thedata';' – 2011-05-31 17:05:19