PDO::prepare
2024-09-03 05:36:29
PDO::prepare — 准备要执行的SQL语句并返回一个 PDOStatement 对象(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
说明
语法
public PDOStatement PDO::prepare ( string $statement [, array $driver_options = array() ] )高佣联盟 www.cgewang.com
为 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语句
实例
<?php
/* 通过数组值向预处理语句传递值 */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(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 = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(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语句
实例
<?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();
?>
/* 通过数组值向预处理语句传递值 */
$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();
?>
最新文章
- Java使用Fork/Join框架来并行执行任务
- MQ介绍
- 怎样解决MySQL数据库主从复制延迟的问题---流行网站的解决办法(转载)
- shell之函数
- [NYOJ 43] 24 Point game
- 删除cookie固定格式
- 禁用掉用户帐号,用户Lync客户端仍然可以登录!
- Android学习路径(两)项目文件本身使用场景和文件演示
- 实现BUG自动检测 - ASP.NET Core依赖注入
- Extjs4新特性
- 设计模式 -->; (8)组合模式
- Gradle 学习一
- Linux神奇命令之---tar
- 本周HTML5的知识点
- C++版 - Leetcode 69. Sqrt(x) 解题报告【C库函数sqrt(x)模拟-求平方根】
- Building Tool(Maven/Gradle)
- wepy中页面的跳转
- OD之去除nag弹窗(四)
- ASP.NET的内置对象 —— Request 对象
- MySQL 四种链接
热门文章
- day78 通过axios实现数据请求
- JavaScript的参数是按照什么方式传递的?
- for of
- Quartz.Net系列(十一):System.Timers.Timer+WindowsService实现定时任务
- node+express4+multiparty实现简单文件上传
- keras 文本序列的相关api
- Video 自动播放
- 理解Spring(一):Spring 与 IoC
- 因为mac不支持移动硬盘的NTFS格式,mac电脑无法写入移动硬盘的终极解决办法
- 题解 洛谷 P4694 【[PA2013]Raper】