PHP PDO 预准备语句

2022-08-30 12:44:42

今天有人告诉我,我真的应该在我的应用程序中使用PDO和准备语句。虽然我了解这些好处,但我正在努力理解如何将它们实施到我的工作流程中。除了它使代码更加清晰之外,我应该有一个特定的数据库类来容纳我所有准备好的语句,还是应该在每次想要运行查询时创建一个?我发现很难理解何时应该使用标准PDO查询以及何时应该使用预准备语句。任何示例,提示或教程链接将不胜感激。


答案 1

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

我把它们包括在这里,并简化了一点。

这个使用参数。 基本上是一个 PDO 对象。你正在做的是把值和分别放到第一个和第二个问号上。?$dbh150'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);
$sth->execute(array(':calories' => 150, ':colour' => 'red'));

$red = $sth->fetchAll();

答案 2

推荐