php mysql execute语法_PHP PDOStatement::execute讲解
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讲解相关推荐
- MySQL 预处理语句prepare、execute、deallocate的使用,执行动态sql
MySQL官方将prepare.execute.deallocate统称为PREPARE STATEMENT. 我习惯称其为[预处理语句]. 其用法十分简单, PREPARE stmt_name FR ...
- mysql grant 语法格式_MySQL grant 语法的详细解析
我们今天主要向大家介绍的是MySQL grant 语法的详细解析,同时本文还介绍了其实际应用代码的介绍,希望在你今后的学习中会有所帮助. 以下的文章是MySQL grant 语法的详细解析,如果你对M ...
- MySQL存储过程语法
MySQL存储过程语法 1.语法结构 2.变量及赋值 2.1.局部变量 2.2.用户变量 2.3.全局变量: 3.出参和入参 4.流程控制 4.1.判断 4.1.1.IF 4.1.2.CASE 4.2 ...
- Servlet和MySQL基本语法概述
Servlet概述 什么是Servlet? Servlet是由SUN公司提供的一门动态Web资源开发技术 静态Web资源:不同的人,在不同的条件下访问后看到的是相同的效果,这样的资源叫做静态Web资源 ...
- php statements,PHP PDOStatement::setAttribute讲解
PDOStatement::setAttribute PDOStatement::setAttribute - 设置一个语句属性(PHP 5 >= 5.1.0, PECL pdo >= 0 ...
- php resultset用法,PHP PDOStatement::nextRowset讲解
PDOStatement::nextRowset PDOStatement::nextRowset - 在一个多行集语句句柄中推进到下一个行集(PHP 5 >= 5.1.0, PECL pdo ...
- php中rowcount 意思,PHP PDOStatement::rowCount讲解
PDOStatement::rowCount PDOStatement::rowCount - 返回受上一个 SQL 语句影响的行数(PHP 5 >= 5.1.0, PECL pdo >= ...
- mysql all语法怎么用_MySQL UNION 与 UNION ALL 语法与用法
MySQL UNION 语法 MySQL UNION 用于把来自多个 SELECT 语句的结果组合到一个结果集合中.语法为:SELECT column,... FROM table1 UNION [A ...
- mysql的存储过程正负数的变化_《转》mysql存储过程语法及范例
<转>mysql存储过程语法及实例 存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法------- ...
最新文章
- 不明原因的约束报错的两种处理方式
- 选点(dfs序+LIS)
- [推荐]在线测试你的网速
- IAR 增加头文件注意事项
- 【upc 9541 矩阵乘法】非正解
- java 协议栈_深入浅出讲解低功耗蓝牙(BLE)协议栈
- go程序执行流程分析
- Web之CSS开发技巧: CSS @media
- SQL Server分组查询某最大值的整条数据(包含linq写法)
- 烟雨在线要饭系统v2.0源码
- VMware虚拟机迁移
- bluefish开发php,Bluefish—优秀的Linux下HTML编辑器
- visio的替代者yEd Graph Editor
- SQL字符串转化数字
- 千万流量秒杀系统-过载保护:如何通过熔断和限流解决流量过载问题?
- android搜索app下载地址,如何找出APP的URL Scheme
- Altium Designer布局布线时元器件移动
- CAP定理,分布式系统
- 如何用Python Tkinter实现剪刀石头布小游戏?
- 组态王能直接读取仪表数据吗_关于组态王读取非标准协议设备数据的应用
热门文章
- python3 多线程_图解|为什么 Python 多线程无法利用多核
- python输入多个数字后续操作_有效地确定后续数字范围中的数字是否在有序列表中. (在Python中)...
- 基于python的数据分析方法五种_利用Python进行数据分析 第5章 pandas入门(1)
- 从2D到3D的目标检测综述
- 使用govendor灵活管理Go程序中的依赖包
- Ubuntu 14.04 64位上安装Adobe reader 9.5.5
- 在Ubuntu 12.04 64bit上配置,安装和运行go程序
- Beta 冲刺 (1/7)
- OpenGL概念辨析: 窗口,视口,裁剪区域
- 【经验】【ORACLE】从字符串中截取其中的数字