这是我准备好的陈述
$stmt = $db->prepare("UPDATE user SET :property=:value WHERE `id`=:id");
$stmt->execute([':property' => $property, ':value' => $value]);
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
如何快速验证查询是否已成功完成?
我在考虑执行部分周围的if()?
答案 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个值