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

Php 如何知道where子句中的条件变为真或假?,php,mysql,sql,mariadb,Php,Mysql,Sql,Mariadb,我正在根据更新查询中WHERE子句中给出的各种条件更新数据库表。 如果条件变为真实,则会发生更新,我想做一些其他事情。 如果条件为假,则不会发生变化 $stmt = $mysqli->prepare("UPDATE bank_report SET STATUS='matched' WHERE id='1' AND part='3'"); if(false === $stmt) { die('prepare() failed: ' . htmlspecialchars($mysqli

我正在根据更新查询中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子句中的条件变为true或false,以确定是否确实发生了更改。

检查受影响的行:

mysqli\u受影响的行()

mysqli::$infected\u rows--mysqli\u infected\u rows-获取上一个MySQL操作中受影响的行数() 或 如果计数大于0,请在更新前进行选择并应用逻辑,您可以使用该逻辑检查语句受影响的行数。如果大于
0
,则
where
子句计算为true:

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

@奈杰尔·伦——这个已经回答过的问题的主题令人困惑。“…正确执行”是指没有错误地执行。TBH此问题的标题并不完全反映问题-where子句变为true或false?但是,如果你看一看复制品,他们所问的问题是完全相同的——用相同的解决方案——因此复制品。