如何知道where子句中的条件变为真或假?

z18hc3ub  于 2021-06-15  发布在  Mysql
关注(0)|答案(3)|浏览(453)

这个问题在这里已经有答案了

如何检查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子句中的条件是真是假,从而确定是否真的发生了变化。

nmpmafwu

nmpmafwu1#

mysqli::$impacted_rows——mysqli_impacted_rows——获取上一个mysql操作中受影响的行数(http://php.net/manual/en/mysqli.affected-rows.php)或者在更新前进行选择,如果计数大于0,则应用逻辑

2sbarzqh

2sbarzqh2#

你可以用 affected_rows 检查语句影响的行数。如果超过 0 ,的 where 子句评估为真:

if ($stmt->affected_rows > 0) {
    // some other logic
}
7hiiyaii

7hiiyaii3#

检查受影响的行:
mysqli\u受影响的\u行()

相关问题