如何检查我的SQL更新是否已通过?

时间:2017-01-13 00:26:37

标签: 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()?

2 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分:0)

您需要做的就是像这样测试返回的$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个值