我找到了很多方法来使用 PDO 的 exec 语句,但我不确定它是否对我有帮助。我的理解是我必须对准备好的语句使用 execute() 函数。我正在使用来自用户输入的数据更新一行,因此我想使用准备好的语句而不是 query() 调用。
我的代码如下:
$dbh = buildDBConnector();
$sql = "UPDATE tb_users
SET authState=1
WHERE id = ? AND authPass = ?";
$q = $dbh->prepare($sql);
$f = $q->execute(array($id,$authPass));
if($f){
echo '<br />Success<br />';
}else{
echo '<br />Failure<br />';
}
问题是查询本身没有错误并且执行良好,因此没有失败存储在 $f 中。但是,我需要知道它是否真的找到要更新的行,然后成功更新它。换句话说,我需要受影响的行。当谷歌搜索等时,它不断出现在 exec 语句中,但据我了解, exec 不是用于准备好的语句?有什么建议么?