首页 > Web开发 > PHP教程 > 正文

mysql PDO::prepare用法详解

互联网 2017-05-25 16:27:02 0

PDO::prepare — 准备要执行的SQL语句并返回一个 PDOStatement 对象(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)


说明

语法

1
public PDOStatement PDO::prepare ( string $statement [, array $driver_options array() ] )

为 PDOStatement::execute() 方法准备要执行的SQL语句,SQL语句可以包含零个或多个命名(:name)或问号(?)参数标记,参数在SQL执行时会被替换。

你不能在 SQL 语句中同时包含命名(:name)或问号(?)参数标记,只能选择其中一种风格。

预处理 SQL 语句中的参数在使用PDOStatement::execute()方法时会传递真实的参数。

参数

statement:合法的SQL语句。

driver_options:此数组包含一个或多个 key=>value 对来设置 PDOStatement 对象的属性, 最常使用到是将PDO::ATTR_CURSOR值设置为PDO::CURSOR_SCROLL来请求一个可滚动游标。

返回值

如果成功,PDO::prepare()返回PDOStatement对象,如果失败返回 FALSE 或抛出异常 PDOException 。

实例

使用命名(:name)参数来准备SQL语句

1
2
3
4
5
6
7
8
9
10
11
<?php
/* 通过数组值向预处理语句传递值 */
$sql = 'SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour';
    $sth $dbh->prepare($sqlarray(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
    $sth->execute(array(':calories' => 150, ':colour' => 'red'));
    $red $sth->fetchAll();
    $sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
    $yellow $sth->fetchAll();
    ?>

使用问号(?)参数来准备SQL语句

1
2
3
4
5
6
7
8
9
<?php
/* 通过数组值向预处理语句传递值 */
$sth $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');$sth->execute(array(150, 'red'));
    $red $sth->fetchAll();
    $sth->execute(array(175, 'yellow'));
    $yellow $sth->fetchAll();
    ?>


  • 相关标签:MySQL PHP
  • 版权归原作者所有,如果有侵犯到您的权益,请联系本站删除!
  • 相关文章


    专题推荐

    今日头条
  • 学习Python的正确姿势 学习Python的正确姿势
  • Google Chrome 58.0.3029.96 正式版发布 Google Chrome 58.0.3029.96 正式版发布
  • Docker公司更换 CEO,将着重发力商业变现 Docker公司更换 CEO,将着重发力商业变现
  • 优酷播放器 一款无优酷LOGO的精美优酷播放器代码 优酷播放器 一款无优酷LOGO的精美优酷播放器代码
  • 热门标签