Binds a PHP variable to a corresponding named or question mark placeholder
in the SQL statement that was use 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, parameters that are used
in a read-only fashion to build up the query. Some drivers support the
invocation of stored procedures that return data as output parameters,
and some also as input/output parameters that both send in data and are
updated to receive it.
Parameters
parameter
Parameter identifier. For a prepared statement using named
placeholders, this will be a parameter name of the form
:name. For a prepared statement using
question mark placeholders, this will be the 1-indexed position of
the parameter.
variable
Name of the PHP variable to bind to the SQL statement parameter.
data_type
Explicit data type for the parameter using the PDO::PARAM_*
constants.
Defaults to PDO::PARAM_STR.
To return an INOUT parameter from a stored procedure,
use the bitwise OR operator to set the PDO::PARAM_INPUT_OUTPUT bits
for the data_type
parameter.
length
Length of the data type. To indicate that a parameter is an OUT
parameter from a stored procedure, you must explicitly set the
length.
driver_options
Return Values
Returns TRUE on success or FALSE on failure.
Examples
Example #1 Execute a prepared statement with named placeholders
<?php /* Execute a prepared statement by binding PHP variables */ $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(); ?>
Example #2 Execute a prepared statement with question mark placeholders
<?php /* Execute a prepared statement by binding PHP variables */ $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(); ?>
Example #3 Call a stored procedure with an INOUT parameter
<?php /* Call a stored procedure with an INOUT parameter */ $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"); ?>