PHP PDOStatement::bindParam讲解
程序员文章站
2023-01-04 16:36:32
pdostatement::bindparam
pdostatement::bindparam — 绑定一个参数到指定的变量名(php 5 >= 5.1.0, pe...
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"); ?>
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
上一篇: PDO::prepare讲解
下一篇: 自媒体千万不要冷落了你的免费用户