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,谢谢