我正在根据UPDATE查询中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 }
但是在两种情况下(对或错),我总是从echo $rc;
获得相同的结果1
是否有任何机制可以区分WHERE子句中的条件为真还是假,以确定是否确实发生了更改。
答案 0 :(得分:1)
您可以使用affected_rows
检查该语句影响了多少行。如果大于0
,则where
子句的评估结果为true:
if ($stmt->affected_rows > 0) {
// some other logic
}
答案 1 :(得分:0)
检查受影响的行:
mysqli_affected_rows()
答案 2 :(得分:0)
mysqli :: $ affected_rows-mysqli_affected_rows —获取前一个MySQL操作(http://php.net/manual/en/mysqli.affected-rows.php)中受影响的行数 要么 如果更新次数大于0,请在更新前进行选择并应用逻辑