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面向对象全攻略 (四)构造方法与析构方法
Sep 30 PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 PHP
php中用数组的方法设置cookies
Apr 21 PHP
PHP中用hash实现的数组
Jul 17 PHP
PHP错误提示的关闭方法详解
Jun 23 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
Joomla开启SEF的方法
May 04 PHP
PHP实现数据分页显示的简单实例
May 26 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
Thinkphp3.2实用篇之计算型验证码示例
Feb 09 PHP
Laravel框架实现的批量删除功能示例
Jan 16 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 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中获取文件扩展名的N种方法小结
2012/02/27 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
详谈python read readline readlines的区别
2017/09/22 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
django API 中接口的互相调用实例
2020/04/01 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
Python通过len函数返回对象长度
2020/10/22 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
会计学个人自荐信模板
2013/12/13 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
员工安全生产承诺书
2014/05/22 职场文书
摄影展策划方案
2014/06/02 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL
Java spring单点登录系统
2021/09/04 Java/Android
业余无线电通联Q语
2022/02/18 无线电