PDOStatement::bindParam — Bind a parameter to the specified variable name (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 ]]] )
Bind a PHP variable to the corresponding named placeholder or question mark placeholder in the SQL statement used for preprocessing. Unlike PDOStatement::bindValue(), this variable is bound as a reference and only takes its value when PDOStatement::execute() is called.
Most parameters are input parameters, that is, parameters are used in a read-only manner to build the query. Some drivers support calling stored procedures and returning data as output parameters, and some support it as input/output parameters, both sending data and receiving updated data.
parameter parameter identifier. For prepared statements using named placeholders, the parameter name should be of the form :name. For prepared statements using the question mark placeholder, the parameter position should be indexed starting with 1.
variable The PHP variable name bound to the SQL statement parameter.
data_type uses the PDO::PARAM_* constants to explicitly specify the type of the parameter. To return an INOUT parameter from a stored procedure, use the bitwise OR operator for the data_type parameter to set the PDO::PARAM_INPUT_OUTPUT bit.
length preallocation hint.
The length of the driverdata data type. To indicate that the parameter is an OUT parameter of a stored procedure, this length must be set explicitly.
driver_options
Returns TRUE on success, or FALSE on failure.
<?php/* Execute a prepared statement through bound PHP variables*/$calories = 150;$colour = 'red';$sth = $dbh->prepare('SELECT name, color, calories FROM fruit WHERE calories < :calories AND color = :colour');$sth->bindParam(':calories', $calories, PDO::PARAM_INT);$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* Execute a prepared statement through bound PHP variables*/$calories = 150;$colour = 'red';$sth = $dbh->prepare('SELECT name, color, calories FROM fruit WHERE calories < ? AND color = ?');$sth->bindParam(1, $calories, PDO::PARAM_INT);$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* Call a stored procedure with INOUT parameters*/$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 color is: $colour");?>