gpt4 book ai didi

mysql - 如何确定更新查询是否在没有更改的情况下执行

转载 作者:行者123 更新时间:2023-11-29 11:05:25 24 4
gpt4 key购买 nike

也许标题不太清楚,但假设这种情况:我有一个表格来更新表的特定行。当我提交表单时,将执行更新查询。

我计算受影响的行数以确定查询是否正确。

$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){

最佳答案

Gordon已经在他的评论中给了你答案,

您应该检查错误条件以查看查询是否成功

但为了让大家明白,我会为您进行扩展。

$status = $row->execute();
if ( ! $status ) {
// the query errored
$arr = $row->errorInfo();
error_log(print_r($arr,1), 3, 'db_error.log'));
http_response_code(500);
exit;
}

// So if we get here the query ran successfully
if($row->rowCount() == 0){
// Nothing was changed by our query this time but it ran successfully
http_response_code(200);
}else{
// Something was changed by our query
http_response_code(200);
}

关于mysql - 如何确定更新查询是否在没有更改的情况下执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41484403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com