Php 如何检查我的SQL更新是否已完成?

Php 如何检查我的SQL更新是否已完成?,php,mysql,sql,mariadb,Php,Mysql,Sql,Mariadb,这是我准备好的声明 $stmt = $db->prepare("UPDATE user SET :property=:value WHERE `id`=:id"); $stmt->execute([':property' => $property, ':value' => $value]); $row = $stmt->fetchAll(PDO::FETCH_ASSOC); 如何快速验证查询是否已成功完成 我在想执行部分可能会出现if?试试这个 if($st

这是我准备好的声明

 $stmt = $db->prepare("UPDATE user SET :property=:value WHERE `id`=:id");
 $stmt->execute([':property' => $property, ':value' => $value]);
 $row = $stmt->fetchAll(PDO::FETCH_ASSOC);
如何快速验证查询是否已成功完成

我在想执行部分可能会出现if?

试试这个

if($stmt->rowCount() > 0){
   echo 'SUCCESS';
}else{
   echo 'ERROR';
}

您需要做的就是像这样测试返回的$stmt

请记住,准备和执行都可能失败,应该进行检查

$stmt = $db->prepare("UPDATE user SET :property=:value WHERE `id`=:id");
if ( $stmt == false ) {
    print_r($db->errorInfo());
    exit;
}
$stmt->execute([':property' => $property, ':value' => $value]);
if ( $stmt == false ) {
    print_r($db->errorInfo());
    exit;
}
这个查询肯定会失败

现在我再仔细看看,查询中有一个巨大的语法错误。不能参数化列或表名

还可以铺设3个参数,仅铺设2个值


您可以在查询中尝试if,您的意思是在第一行附近@loganwayne您可以尝试$stmt->rowCount来检查执行后更新的行数。哦,好的,我会尝试的,谢谢@PhiterFernandesI意识到,我不能参数化任何列名,所以switch语句太大了,它是xD,谢谢