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如何透过ODBC来存取数据库
Oct 09 PHP
支持oicq头像的留言簿(二)
Oct 09 PHP
一些常用的php函数
Dec 06 PHP
PHP安全性漫谈
Jun 28 PHP
smarty获得当前url的方法分享
Feb 14 PHP
PHP中echo和print的区别
Aug 28 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 PHP
PHP中SESSION过期设置
Mar 09 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
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
Smarty模板配置实例简析
2019/07/20 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
Javascript的一种模块模式
2010/09/08 Javascript
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
小程序自定义日历效果
2018/12/29 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
python time.strptime格式化实例详解
2021/02/03 Python
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
怎样声明子类
2013/07/02 面试题
大型活动组织方案
2014/05/10 职场文书
教师考察材料范文
2014/06/03 职场文书
个人四风问题整改措施
2014/10/24 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
施工员岗位职责范本
2015/04/11 职场文书
教师研修随笔感言
2015/11/18 职场文书
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis