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中使用Oracle数据库(2)
Oct 09 PHP
php中通过虚代理实现延迟加载的实现代码
Jun 10 PHP
php 带逗号千位符数字的处理方法
Jan 10 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
解析php中的fopen()函数用打开文件模式说明
Jun 20 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
一个php短网址的生成代码(仿微博短网址)
May 07 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
Yii框架安装简明教程
May 15 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中实现crontab代码分享
2015/03/26 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
ExtJs的Date格式字符代码
2010/12/30 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
2019/01/18 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
python抓取网页图片示例(python爬虫)
2014/04/27 Python
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
Python类的继承和多态代码详解
2017/12/27 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
Python高斯消除矩阵
2019/01/02 Python
python集合是否可变总结
2019/06/20 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
.net面试题
2015/12/22 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
会计与审计毕业生自荐信范文
2013/12/30 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
关于分班的感言
2015/08/04 职场文书
工商局调档介绍信
2015/10/22 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript