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 变量执行一条预处理语句 */

$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();

?>

使用一个含有插入值的数组执行一条预处理语句(命名参数)

/* 通过传递一个含有插入值的数组执行一条预处理语句 */

$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));

?>

使用一个含有插入值的数组执行一条预处理语句(占位符)

/* 通过传递一个插入值的数组执行一条预处理语句 */

$calories = 150;

$colour = 'red';

$sth = $dbh->prepare('SELECT name, colour, calories

FROM fruit

WHERE calories < ? AND colour = ?');

$sth->execute(array($calories, $colour));

?>

执行一条问号占位符的预处理语句

/* 通过绑定 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 子句的预处理语句

/* 使用一个数组的值执行一条含有 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 mysql execute语法_PHP PDOStatement::execute讲解相关推荐

  1. MySQL 预处理语句prepare、execute、deallocate的使用,执行动态sql

    MySQL官方将prepare.execute.deallocate统称为PREPARE STATEMENT. 我习惯称其为[预处理语句]. 其用法十分简单, PREPARE stmt_name FR ...

  2. mysql grant 语法格式_MySQL grant 语法的详细解析

    我们今天主要向大家介绍的是MySQL grant 语法的详细解析,同时本文还介绍了其实际应用代码的介绍,希望在你今后的学习中会有所帮助. 以下的文章是MySQL grant 语法的详细解析,如果你对M ...

  3. MySQL存储过程语法

    MySQL存储过程语法 1.语法结构 2.变量及赋值 2.1.局部变量 2.2.用户变量 2.3.全局变量: 3.出参和入参 4.流程控制 4.1.判断 4.1.1.IF 4.1.2.CASE 4.2 ...

  4. Servlet和MySQL基本语法概述

    Servlet概述 什么是Servlet? Servlet是由SUN公司提供的一门动态Web资源开发技术 静态Web资源:不同的人,在不同的条件下访问后看到的是相同的效果,这样的资源叫做静态Web资源 ...

  5. php statements,PHP PDOStatement::setAttribute讲解

    PDOStatement::setAttribute PDOStatement::setAttribute - 设置一个语句属性(PHP 5 >= 5.1.0, PECL pdo >= 0 ...

  6. php resultset用法,PHP PDOStatement::nextRowset讲解

    PDOStatement::nextRowset PDOStatement::nextRowset - 在一个多行集语句句柄中推进到下一个行集(PHP 5 >= 5.1.0, PECL pdo ...

  7. php中rowcount 意思,PHP PDOStatement::rowCount讲解

    PDOStatement::rowCount PDOStatement::rowCount - 返回受上一个 SQL 语句影响的行数(PHP 5 >= 5.1.0, PECL pdo >= ...

  8. mysql all语法怎么用_MySQL UNION 与 UNION ALL 语法与用法

    MySQL UNION 语法 MySQL UNION 用于把来自多个 SELECT 语句的结果组合到一个结果集合中.语法为:SELECT column,... FROM table1 UNION [A ...

  9. mysql的存储过程正负数的变化_《转》mysql存储过程语法及范例

    <转>mysql存储过程语法及实例 存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法------- ...

最新文章

  1. 不明原因的约束报错的两种处理方式
  2. 选点(dfs序+LIS)
  3. [推荐]在线测试你的网速
  4. IAR 增加头文件注意事项
  5. 【upc 9541 矩阵乘法】非正解
  6. java 协议栈_深入浅出讲解低功耗蓝牙(BLE)协议栈
  7. go程序执行流程分析
  8. Web之CSS开发技巧: CSS @media
  9. SQL Server分组查询某最大值的整条数据(包含linq写法)
  10. 烟雨在线要饭系统v2.0源码
  11. VMware虚拟机迁移
  12. bluefish开发php,Bluefish—优秀的Linux下HTML编辑器
  13. visio的替代者yEd Graph Editor
  14. SQL字符串转化数字
  15. 千万流量秒杀系统-过载保护:如何通过熔断和限流解决流量过载问题?
  16. android搜索app下载地址,如何找出APP的URL Scheme
  17. Altium Designer布局布线时元器件移动
  18. CAP定理,分布式系统
  19. 如何用Python Tkinter实现剪刀石头布小游戏?
  20. 组态王能直接读取仪表数据吗_关于组态王读取非标准协议设备数据的应用

热门文章

  1. python3 多线程_图解|为什么 Python 多线程无法利用多核
  2. python输入多个数字后续操作_有效地确定后续数字范围中的数字是否在有序列表中. (在Python中)...
  3. 基于python的数据分析方法五种_利用Python进行数据分析 第5章 pandas入门(1)
  4. 从2D到3D的目标检测综述
  5. 使用govendor灵活管理Go程序中的依赖包
  6. Ubuntu 14.04 64位上安装Adobe reader 9.5.5
  7. 在Ubuntu 12.04 64bit上配置,安装和运行go程序
  8. Beta 冲刺 (1/7)
  9. OpenGL概念辨析: 窗口,视口,裁剪区域
  10. 【经验】【ORACLE】从字符串中截取其中的数字