2016-11-29 72 views
3
echo mysqli_query($con, "UPDATE stuff SET fieldd = 2 WHERE bla = 7"); 

它返回1當存在於blaSQL - 檢查行是否存在,而沒有額外的查詢更新?

7但當7在BLA不存在,它也返回1,爲什麼????有沒有辦法找出更新是否成功/如果該行存在,而沒有檢查此行是否存在額外的查詢?

+1

你使用了哪些數據庫API? – AbraCadaver

+0

您的意思是PHP中的mysqli?我忘了添加它。編輯 –

+0

http://php.net/manual/en/mysqli.affected-rows.php – AbraCadaver

回答

0

一種方法是使用變量:

SET @found = 0; 
UPDATE stuff 
    SET fieldd = if(@found := 1, 2, 2) 
    WHERE bla = 7; 

SELECT @found; 

一個更正式的方式是使用mysql_affected_rows()(見here)。但是,默認情況下,只有該行實際發生更改時纔會顯示。

+0

這是有點難以理解如何使用它oO你可以將它編輯爲PHP代碼嗎? –

相關問題