这个问题在这里已经有答案了:
如何检查updatemysqli查询是否正确执行(4个答案)
两年前关门了。
我根据updatequery中where子句中给出的各种条件更新数据库表。
如果情况真的发生了,我想做些别的事情。
如果条件为假,则不会发生变化。
$stmt = $mysqli->prepare("UPDATE bank_report SET STATUS='matched' WHERE id='1' AND part='3'");
if(false === $stmt) {
die('prepare() failed: ' . htmlspecialchars($mysqli->error));
}
$rc = $stmt->execute();
if(false === $rc) {
die('execute() failed: ' . htmlspecialchars($stmt->error));
}
echo $rc;
// I want this
// if(WHERE clause gets true) { PERFORM SOMETHING ELSE }
但在这两种情况下(对或错),我总是从1得到相同的结果 echo $rc;
有没有什么机制可以让我区分where子句中的条件是真是假,从而确定是否真的发生了变化。
3条答案
按热度按时间nmpmafwu1#
mysqli::$impacted_rows——mysqli_impacted_rows——获取上一个mysql操作中受影响的行数(http://php.net/manual/en/mysqli.affected-rows.php)或者在更新前进行选择,如果计数大于0,则应用逻辑
2sbarzqh2#
你可以用
affected_rows
检查语句影响的行数。如果超过0
,的where
子句评估为真:7hiiyaii3#
检查受影响的行:
mysqli\u受影响的\u行()