簡體   English   中英

php mysqli更新表,數據相同返回0受影響的行

[英]php mysqli update table with same data return 0 affected row

在MySQL數據庫中,我有一個表名data 在此表中有多個字段。

目前, Field1具有test值。 現在,用戶想要更新表,然后將值放入test中。

我的查詢失敗,因為您可以看到未執行echo "Database updated"

似乎受影響的行返回0。

$stmt = $mysqli->prepare("UPDATE `data` SET `field1` = 'test' WHERE `key` = ?")
$stmt->bind_param("s", $mykey);
$stmt->execute();

$nrows = $stmt->affected_rows;
if ($nrows== 1) {
echo "Database updated."
    }

我想知道如何設計此查詢以使其正常工作。 如果新值與現有值相同。

謝謝。

從更改查詢

"UPDATE `data` SET `field1` = 1 WHERE `key` = (?)"

"UPDATE `data` SET `field1` = 1 WHERE `key` = ?"

因為如果在現有查詢中綁定參數,則它將返回類似(2)並且在數據庫中肯定不匹配。

您的查詢中的remove ()是錯誤的SQL語法:

stmt = $mysqli->prepare("UPDATE `data` SET `field1` = 1 WHERE `key` = ?")

另外,您應該在執行SQL查詢后檢查錯誤。 在這里查看如何使用mysqli_error做到這一點。

我也很久以前也遇到過同樣的情況。 我所做的只是先select記錄以檢查是否需要更新。 另請參閱此接受的答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM