PDOStatement::bindParam

PHP PDO 参考手册PHP PDO Reference Manual

PDOStatement::bindParam — Binds a parameter to the specified variable name (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)


Description

Syntax

bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )

Binds a PHP variable to the corresponding named or question mark placeholder in the SQL statement that was used to prepare the statement. Unlike PDOStatement::bindValue(), the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

Most parameters are input parameters, that is, the parameter is used in a read-only fashion to build up the query. Some drivers support calling stored procedures that return data as output parameters, and some support input/output parameters that both send data and receive updated data.


Parameters

parameter
Parameter identifier. For a prepared statement using named placeholders, this would be a parameter name of the form :name. For a prepared statement using question mark placeholders, this would be the 1-indexed position of the parameter.

variable
The name of the PHP variable to bind to the SQL statement parameter.

data_type
Explicitly specifies the type of the parameter using PDO::PARAM_* constants. To return an INOUT parameter from a stored procedure, use the bitwise OR operator to set the PDO::PARAM_INPUT_OUTPUT bit for the data_type parameter.

length
Pre-allocation hint.

driverdata
Length of the data type. To indicate that a parameter is an OUT parameter from a stored procedure, you must explicitly set this length.

driver_options


Return Values

Returns TRUE on success, or FALSE on failure.


Examples

Execute a prepared statement with named placeholders

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

Execute a prepared statement with question mark placeholders

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

Call a stored procedure with an INOUT parameter

<?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 PDO 参考手册PHP PDO Reference Manual

Other Extensions