PDOSTATEMENT.EXECUTE(3) 1 PDOSTATEMENT.EXECUTE(3)
PDOStatement::execute - Executes a prepared statement
SYNOPSIS
public bool PDOStatement::execute ([array $input_parameters])
DESCRIPTION
Execute the prepared statement. If the prepared statement included parameter markers, you must either:
ocall PDOStatement.bindParam(3) to bind PHP variables to the parameter markers: bound variables pass their value as input and
receive the output value, if any, of their associated parameter markers
oor pass an array of input-only parameter values
PARAMETERS
o $input_parameters
- An array of values with as many elements as there are bound parameters in the SQL statement being executed. All values are
treated as PDO::PARAM_STR. You cannot bind multiple values to a single parameter; for example, you cannot bind two values to a
single named parameter in an IN() clause. You cannot bind more values than specified; if more keys exist in $input_parameters
than in the SQL specified in the PDO::prepare, then the statement will fail and an error is emitted.
RETURN VALUES
Returns TRUE on success or FALSE on failure.
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 5.2.0 | |
| | |
| | The keys from $input_parameters must match the |
| | ones declared in the SQL. Before PHP 5.2.0 this |
| | was silently ignored. |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
Execute a prepared statement with bound variables
<?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 an array of insert values (named parameters)
<?php
/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>
Example #3
Execute a prepared statement with an array of insert values (placeholders)
<?php
/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>
Example #4
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 #5
Execute a prepared statement using array for IN clause
<?php
/* Execute a prepared statement using an array of values for an IN clause */
$params = array(1, 21, 63, 171);
/* Create a string for the parameter placeholders filled to the number of params */
$place_holders = implode(',', array_fill(0, count($params), '?'));
/*
This prepares the statement with enough unnamed placeholders for every value
in our $params array. The values of the $params array are then bound to the
placeholders in the prepared statement when the statement is executed.
This is not the same thing as using PDOStatement::bindParam() since this
requires a reference to the variable. PDOStatement::execute() only binds
by value instead.
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
?>
NOTES
Note
Some drivers require to close cursor before executing next statement.
SEE ALSO
PDO.prepare(3), PDOStatement.bindParam(3), PDOStatement.fetch(3), PDOStatement.fetchAll(3), PDOStatement.fetchColumn(3).
PHP Documentation Group PDOSTATEMENT.EXECUTE(3)