PHP PDOStatement::execute讲解


Posted in PHP onJanuary 31, 2019

PDOStatement::execute

PDOStatement::execute — 执行一条预处理语句(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

说明

语法

bool PDOStatement::execute ([ array $input_parameters ] )

执行预处理过的语句。如果预处理过的语句含有参数标记,必须选择下面其中一种做法:

  • 调用PDOStatement::bindParam()绑定 PHP 变量到参数标记:如果有的话,通过关联参数标记绑定的变量来传递输入值和取得输出值
  • 或传递一个只作为输入参数值的数组

参数

input_parameters

  • 一个元素个数和将被执行的 SQL 语句中绑定的参数一样多的数组。所有的值作为 PDO::PARAM_STR 对待。
  • 不能绑定多个值到一个单独的参数;比如,不能绑定两个值到 IN()子句中一个单独的命名参数。
  • 绑定的值不能超过指定的个数。如果在 input_parameters 中存在比 PDO::prepare() 预处理的SQL 指定的多的键名,则此语句将会失败并发出一个错误。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE。

实例

执行一条绑定变量的预处理语句

<?php
/* 通过绑定 PHP 变量执行一条预处理语句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
 FROM fruit
 WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

使用一个含有插入值的数组执行一条预处理语句(命名参数)

<?php
/* 通过传递一个含有插入值的数组执行一条预处理语句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
 FROM fruit
 WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>

使用一个含有插入值的数组执行一条预处理语句(占位符)

<?php
/* 通过传递一个插入值的数组执行一条预处理语句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
 FROM fruit
 WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>

执行一条问号占位符的预处理语句

<?php
/* 通过绑定 PHP 变量执行一条预处理语句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
 FROM fruit
 WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

使用数组执行一条含有 IN 子句的预处理语句

<?php
/* 使用一个数组的值执行一条含有 IN 子句的预处理语句 */
$params = array(1, 21, 63, 171);
/* 创建一个填充了和params相同数量占位符的字符串 */
$place_holders = implode(',', array_fill(0, count($params), '?'));
/*
 对于 $params 数组中的每个值,要预处理的语句包含足够的未命名占位符 。
 语句被执行时, $params 数组中的值被绑定到预处理语句中的占位符。
 这和使用 PDOStatement::bindParam() 不一样,因为它需要一个引用变量。
 PDOStatement::execute() 仅作为通过值绑定的替代。
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
?>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
php中cookie的作用域
Mar 27 PHP
php smarty函数扩展
Mar 15 PHP
PHP中函数rand和mt_rand的区别比较
Dec 26 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
PHP中的按位与和按位或操作示例
Jan 27 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
May 08 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
Mar 18 PHP
php快速排序原理与实现方法分析
May 26 PHP
php 解决substr()截取中文字符乱码问题
Jul 18 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
PHP PDOStatement::errorInfo讲解
Jan 31 #PHP
PHP PDOStatement::errorCode讲解
Jan 31 #PHP
PHP PDOStatement::columnCount讲解
Jan 30 #PHP
PHP PDOStatement::closeCursor讲解
Jan 30 #PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 #PHP
PHP PDOStatement::bindValue讲解
Jan 30 #PHP
PHP PDOStatement::bindParam讲解
Jan 30 #PHP
You might like
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
python删除不需要的python文件方法
2018/04/24 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
python中封包建立过程实例
2021/02/18 Python
有原因的手表:Flex Watches
2019/03/23 全球购物
施工安全汇报材料
2014/08/17 职场文书
乡镇领导班子四风整顿行动工作汇报
2014/10/25 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android