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下把数组保存为文件格式的实例应用
Feb 08 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
php动态生成函数示例
Mar 21 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
CI框架安全类Security.php源码分析
Nov 04 PHP
PHP实现简单实用的验证码类
Jul 29 PHP
php查询操作实现投票功能
May 09 PHP
session 加入redis的实现代码
Jul 15 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
遍历echsop的region表形成缓存的程序实例代码
Nov 01 PHP
PHP写的简单数字验证码实例
May 23 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 fsockopen写的HTTP下载的类
2007/02/22 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
JS中表单的使用小结
2014/01/11 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
跟老齐学Python之做一个小游戏
2014/09/28 Python
pygame学习笔记(5):游戏精灵
2015/04/15 Python
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
Python全局变量用法实例分析
2016/07/19 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
夜大自我鉴定
2013/10/31 职场文书
房产转让协议书
2014/04/11 职场文书
倡议书范文
2014/04/16 职场文书
未婚证明格式
2015/06/15 职场文书
python如何在word中存储本地图片
2021/04/07 Python
element tree树形组件回显数据问题解决
2022/08/14 Javascript