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 远程关机操作的代码
Dec 05 PHP
ezSQL PHP数据库操作类库
May 16 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 PHP
精美漂亮的php分页类代码
Apr 02 PHP
php中用加号与用array_merge合并数组的区别深入分析
Jun 03 PHP
深入PHP与浏览器缓存的分析
Jun 03 PHP
php5.5新数组函数array_column使用
Jul 08 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 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实现mysql数据库备份类
2008/03/20 PHP
php5.5中类级别的常量使用介绍
2013/10/02 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
vue生成token并保存到本地存储中
2018/07/17 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
js实现缓动动画
2020/11/25 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
Python实现的简单hangman游戏实例
2015/06/28 Python
Python装饰器用法实例总结
2018/05/26 Python
用Django写天气预报查询网站
2018/10/21 Python
python dlib人脸识别代码实例
2019/04/04 Python
python 实现单通道转3通道
2019/12/03 Python
python中有帮助函数吗
2020/06/19 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
python实现简单的学生管理系统
2021/02/22 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
护士专业推荐信
2013/11/02 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
组织生活会发言材料
2014/12/15 职场文书
优秀志愿者感言
2015/08/01 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js