PHP/PDO:使用简单的预处理语句与查询返回/受影响的行?

Joh*_*ohn 4 php mysql pdo prepared-statement

我是PDO对象的新手,无法找到可以帮助我的单个文档.假设我有一个简单的代码来删除一行:

$count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");
Run Code Online (Sandbox Code Playgroud)

那会返回受影响的行,但是我如何使用预处理语句呢?可以使用$dbh->prepareAND $dbh->exec或查询!?

Jim*_* W. 12

它应该与任何其他声明相同:

$stmt = $dbh->prepare("DELETE FROM fruit WHERE colour = ?");
$stmt->execute(array('red'));
$count = $stmt->rowCount();
Run Code Online (Sandbox Code Playgroud)

PDO声明rowCount时()应该是你在找什么做的.

编辑

通过添加->rowCount()将返回行计数来修复.->execute在一个语句中将返回一个bool,true或者false查询是否出错.当然,所有这些信息都可以在PDO声明手册中找到