PHP PDO编写的语句

时间:2009-09-21 22:01:51

标签: php mysql pdo

我今天被告知我应该在我的应用程序中使用PDO和准备好的语句。虽然我了解其中的好处,但我很难理解如何将它们应用到我的工作流程中。除了它使代码更清晰的事实之外,我是否应该拥有一个特定的数据库类,其中包含我所有准备好的语句,或者我应该在每次运行查询时创建一个?我发现很难理解何时应该使用标准PDO查询以及何时应该使用预准备语句。任何示例,提示或教程链接将不胜感激。

1 个答案:

答案 0 :(得分:32)

pdo::prepare()文档中有两个很好的例子。

我已将它们包括在内并简化了一些。

这个参数使用?个参数。 $dbh基本上是一个PDO对象。您正在做的是将值150'red'分别放入第一个和第二个问号。

/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
                      FROM fruit
                      WHERE calories < ? AND colour = ?');

$sth->execute(array(150, 'red'));

$red = $sth->fetchAll();

这个使用命名参数,有点复杂。

/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
        FROM fruit
        WHERE calories < :calories AND colour = :colour';

$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));

$red = $sth->fetchAll();