echo mysqli_query($con, "UPDATE stuff SET fieldd = 2 WHERE bla = 7");
当 bla
中存在 7
时返回 1
但当 bla 中的 7
不存在时,它也会返回 1
,为什么????有没有一种方法可以找出更新是否成功/是否存在该行,而无需检查该行是否存在之前的额外查询?
最佳答案
一种方法使用变量:
SET @found = 0;
UPDATE stuff
SET fieldd = if(@found := 1, 2, 2)
WHERE bla = 7;
SELECT @found;
更正式的方法是使用mysql_affected_rows()
(参见here)。不过,默认情况下,这仅在该行实际发生更改时显示。
关于php - sql - 在没有额外查询的情况下更新时检查行是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40874460/