欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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");
?>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接