3
echo mysqli_query($con, "UPDATE stuff SET fieldd = 2 WHERE bla = 7");
它返回1
當存在於bla
SQL - 檢查行是否存在,而沒有額外的查詢更新?
7
但當7
在BLA不存在,它也返回1
,爲什麼????有沒有辦法找出更新是否成功/如果該行存在,而沒有檢查此行是否存在額外的查詢?
echo mysqli_query($con, "UPDATE stuff SET fieldd = 2 WHERE bla = 7");
它返回1
當存在於bla
SQL - 檢查行是否存在,而沒有額外的查詢更新?
7
但當7
在BLA不存在,它也返回1
,爲什麼????有沒有辦法找出更新是否成功/如果該行存在,而沒有檢查此行是否存在額外的查詢?
一種方法是使用變量:
SET @found = 0;
UPDATE stuff
SET fieldd = if(@found := 1, 2, 2)
WHERE bla = 7;
SELECT @found;
一個更正式的方式是使用mysql_affected_rows()
(見here)。但是,默認情況下,只有該行實際發生更改時纔會顯示。
這是有點難以理解如何使用它oO你可以將它編輯爲PHP代碼嗎? –
你使用了哪些數據庫API? – AbraCadaver
您的意思是PHP中的mysqli?我忘了添加它。編輯 –
http://php.net/manual/en/mysqli.affected-rows.php – AbraCadaver