2021042012000332828.jpg

php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

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();
?>


解析PHP中的PDO::prepare(附代码实例)