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动态生成静态HTML网页的代码
Mar 04 PHP
PHP中的session永不过期的解决思路及实现方法分享
Apr 20 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
全面解读PHP的人气开发框架Laravel
Oct 15 PHP
Laravel实现构造函数自动依赖注入的方法
Mar 16 PHP
php metaphone()函数的定义和用法
May 15 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
Laravel 验证码认证学习记录小结
Dec 20 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
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
php取得字符串首字母的方法
2015/03/25 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
JQuery球队选择实例
2015/05/18 Javascript
jQuery验证插件validate使用详解
2016/05/11 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
详解jQuery事件
2017/01/13 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
使用Python生成200个激活码的实现方法
2019/11/22 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
聚美优品励志广告词
2014/03/14 职场文书
日化店促销方案
2014/03/26 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
学校运动会加油词
2015/07/18 职场文书
家访教师心得体会
2016/01/23 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python