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

2021042012000332828.jpg

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视频教程

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...