这是我准备好的陈述
$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 个值