我是PDO对象的新手,无法找到对我有帮助的单一文档。假设我有一个简单的代码来删除一行:
$count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");
那会返回受影响的行,但是我如何使用预备语句?可以使用$dbh->prepare
AND $dbh->exec
或查询!?
答案 0 :(得分:12)
它应该与任何其他声明相同:
$stmt = $dbh->prepare("DELETE FROM fruit WHERE colour = ?");
$stmt->execute(array('red'));
$count = $stmt->rowCount();
PDO Statement rowCount()应该是你想要做的。
修改强>
通过添加将返回行计数的->rowCount()
来修复。无论查询是否出错,语句中的->execute
都会返回bool
,true
或false
。当然,所有这些信息都可以在PDO Statement Manual
答案 1 :(得分:1)
$dbh->prepare
会返回PDOStatement
个对象。然后,您可以致电$stmt->execute
以获得结果。
以下是手册中的一个示例:
<?php
/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$stmt = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$stmt->execute(array($calories, $colour));
?>