PHP PDOStatement::bindParam讲解
作者:php参考手册 时间:2023-06-05 05:47:28
PDOStatement::bindParam
PDOStatement::bindParam — 绑定一个参数到指定的变量名(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
说明
语法
bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )
绑定一个PHP变量到用作预处理的SQL语句中的对应命名占位符或问号占位符。 不同于PDOStatement::bindValue()
,此变量作为引用被绑定,并只在PDOStatement::execute()
被调用的时候才取其值。
大多数参数是输入参数,即,参数以只读的方式用来建立查询。一些驱动支持调用存储过程并作为输出参数返回数据,一些支持作为输入/输出参数,既发送数据又接收更新后的数据。
参数
parameter
参数标识符。对于使用命名占位符的预处理语句,应是类似 :name 形式的参数名。对于使用问号占位符的预处理语句,应是以1开始索引的参数位置。
variable
绑定到 SQL 语句参数的 PHP 变量名。
data_type
使用 PDO::PARAM_* 常量明确地指定参数的类型。要从一个存储过程中返回一个 INOUT 参数,需要为 data_type 参数使用按位或操作符去设置 PDO::PARAM_INPUT_OUTPUT 位。
length
预分配提示。
driverdata
数据类型的长度。为表明参数是一个存储过程的 OUT 参数,必须明确地设置此长度。
driver_options
返回值
成功时返回 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
/* 通过绑定的 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();
?>
使用 INOUT 参数调用一个存储过程
<?php
/* 使用 INOUT 参数调用一个存储过程 */
$colour = 'red';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $colour, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print("After pureeing fruit, the colour is: $colour");
?>
标签:php,pdostatement,bindparam
0
投稿
猜你喜欢
asp如何读取文本文件的内容?
2009-11-18 20:55:00
常用照片尺寸
2009-03-06 12:56:00
asp全面解析Server对象
2008-10-19 17:24:00
也谈用户体验
2009-07-15 12:56:00
Dreamweaver 4.0使用技巧集锦
2007-11-08 12:47:00
ASP的数据命名有什么规则吗?
2009-10-28 18:23:00
oracle 集合
2009-06-19 18:09:00
利用windows任务计划实现oracle的定期备份
2009-08-31 12:24:00
SQL查询重复记录
2011-03-27 09:06:00
页面重构中的组件制作要点
2009-10-25 13:06:00
解决SQL Server日志文件损坏严重的问题
2009-02-05 15:55:00
PHPMyadmin2.10中文显示为乱码的解决办法
2007-08-22 08:18:00
SQL Server命令行导数据的2种方式
2010-07-26 14:48:00
马化腾关于产品设计与用户体验的培训
2009-02-12 11:45:00
SQL Server 2000如何设置会话上下文信息?
2010-05-18 18:33:00
用FrontPage200八步快速建站
2008-09-17 10:52:00
AJAX打造博客无刷新搜索
2007-08-23 08:48:00
rs.getrows的使用方法
2008-04-05 14:01:00
IE9硬件加速性能远超Chrome5.0和Firefox4.0
2010-06-09 11:12:00
10分钟学会Google Map API (二)
2009-06-07 18:14:00