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 相关文章推荐
六酷社区论坛HOME页清新格调免费版 下载
Mar 07 PHP
php GD绘制24小时柱状图
Jun 28 PHP
PHP 实用代码收集
Jan 22 PHP
PHP Memcached应用实现代码
Feb 08 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
php-fpm配置详解
Feb 12 PHP
PHP学习笔记(一) 简单了解PHP
Aug 04 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 PHP
用PHP代码给图片加水印
Jul 01 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 PHP
Laravel框架实现定时发布任务的方法
Aug 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
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
jQuery层次选择器用法示例
2016/09/09 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
python+selenium开发环境搭建图文教程
2017/08/11 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
Python处理PDF与CDF实例
2020/02/26 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
上班早退检讨书
2014/01/09 职场文书
《一株紫丁香》教学反思
2014/02/19 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
丽江古城导游词
2015/02/03 职场文书
戒赌保证书
2015/05/11 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书
python用tkinter开发的扫雷游戏
2021/06/01 Python