【发布时间】:2017-01-05 11:51:59
【问题描述】:
也许标题不是很清楚,但假设这种情况: 我有一个表格来更新表格的特定行。当我提交表单时,会执行 UPDATE 查询。
我计算受影响的行数以确定查询是否正确。
$row->execute();
$count = $row->rowCount();
if($count==0){
http_response_code(500);
}else{
http_response_code(200);
}
如果用户通过更改任何数据来提交表单,这很有效。如果表单保持不变,查询将影响 0 个结果,我的代码将返回 500。 但关键是查询已正确执行。
所以我的问题是:mysql 有没有办法告诉我受影响的 0 行 因为数据中没有任何变化 而不是任何其他情况(例如,字段中的错误值等等?)。这样我的 if 就可以变成这样:
if($count==0||$no_field_changed==false){
【问题讨论】:
-
您应该检查错误条件以查看查询是否成功。您应该检查受影响的行数以了解实际更改了多少行。
-
@GordonLinoff 实际上这就是我所做的。我检查有多少受影响的行(参见代码)。但是如果所有数据都没有改变,我会得到 0 行(但查询实际上没有失败也没有触发任何错误)。向比我更熟练的人寻求一些明智的建议:)
标签: mysql