解析PHP中的PDO::prepare(附代码实例)
PDO
是目前连接数据库较为频繁的使用方法,为了提高运行效率,使用预处理语句——prepare()
方法,是较为有效的一条路径,本文就带大家一起来看一看。
首先需要了解一下PDO::prepare
的语法
public PDO::prepare ( string $statement , array $driver_options = array())
-
string $statement:必须是对目标数据库服务器有效的 SQL 语句模板。
-
$driver_options:数组包含一个或多个 key=>value 键值对,为返回的
PDOStatement
对象设置属性。 -
返回值:如果数据库服务器完成准备了语句,则 返回
PDOStatement
对象。如果数据库服务器无法准备语句,则返回false
或抛出PDOException
(取决于 错误处理器)。
1.用命名参数形式准备 SQL 语句参数
<?php /* 传入数组的值,并执行准备好的语句 */ $sql = 'SELECT id, height, heights FROM people WHERE heights < :heights AND height = :height'; $sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); $sth->execute(array(':heights' => 150, ':height' => 'tall')); $tall = $sth->fetchAll(); $sth->execute(array(':heights' => 175, ':height' => 'small')); $small = $sth->fetchAll(); ?>
2 用问号形式准备 SQL 语句参数
<?php /* 传入数组的值,并执行准备好的语句 */ $sth = $dbh->prepare('SELECT id, height, heights FROM people WHERE heights < ? AND height = ?'); $sth->execute(array(150, 'tall')); $tall = $sth->fetchAll(); $sth->execute(array(175, 'small')); $small = $sth->fetchAll(); ?>
推荐:《2021年PHP面试题大汇总(收藏)》《php视频教程》