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文件上传实例详解!!!
Jan 02 PHP
让PHP支持页面回退的两种方法
Jan 10 PHP
PHP 读取文件内容代码(txt,js等)
Dec 06 PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
Apr 25 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
Sep 14 PHP
PHP环形链表实现方法示例
Sep 15 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 26 PHP
PHP7 新增常量
Mar 09 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
PHP删除非空目录的函数代码小结
2013/02/28 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
PHP连接MYSQL数据库实例代码
2016/01/20 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
Firefox div高度自适应
2009/04/28 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
python如何在循环引用中管理内存
2018/03/20 Python
python如何实现视频转代码视频
2019/06/17 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
低碳环保口号
2014/06/12 职场文书
十佳党员事迹材料
2014/08/28 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
swagger如何返回map字段注释
2021/07/03 Java/Android
Java实现房屋出租系统详解
2021/10/05 Java/Android