pdostatement::bindparam-k8凯发旗舰
pdostatement::bindparam
(php 5 >= 5.1.0, php 7, php 8, pecl pdo >= 0.1.0)
pdostatement::bindparam — 绑定一个参数到指定的变量名
说明
public pdostatement::bindparam(
string|int $param
,
mixed &$var
,
int $type
= pdo::param_str,
int $maxlength
= 0,
mixed $driveroptions
= null
): bool
绑定一个php变量到用作预处理的sql语句中的对应命名占位符或问号占位符。 不同于 pdostatement::bindvalue() ,此变量作为引用被绑定,并只在 pdostatement::execute() 被调用的时候才取其值。
大多数参数是输入参数,即,参数以只读的方式用来建立查询(但仍然可以根据 type
进行转换)。一些驱动支持调用存储过程并作为输出参数返回数据,一些支持作为输入/输出参数,既发送数据又接收更新后的数据。
参数
param
参数标识符。对于使用命名占位符的预处理语句,应是类似:name形式的参数名。对于使用问号占位符的预处理语句,应是以1开始索引的参数位置。
var
绑定到 sql 语句参数的 php 变量名。
type
使用
pdo::param_*
常量明确地指定参数的类型。要从存储过程中返回 inout 参数,需要为type
参数使用按位或操作符去设置pdo::param_input_output
位。maxlength
数据类型的长度。为表明参数是一个存储过程的 out 参数,必须明确地设置此长度。 仅当
type
参数为pdo::param_input_output
时才有意义。driveroptions
返回值
成功时返回 true
, 或者在失败时返回 false
。
错误/异常
如果属性 pdo::attr_errmode
设置为 pdo::errmode_warning
,则发出级别为 e_warning
的错误。
如果属性 pdo::attr_errmode
设置为 pdo::errmode_exception
,则抛出 pdoexception。
范例
example #1 执行一条使用命名占位符的预处理语句
/* 通过绑定的 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);
$sth->execute();
?>
example #2 执行一条使用问号占位符的预处理语句
#pdo #php