DB_common::execute() – Executes a prepared SQL statement


mixed &execute ( resource $stmt , mixed $data = array() )


Merges the SQL statement you submitted to prepare() with the information in $data and then sends the query to the database.


resource $stmt

query handle from prepare()

mixed $data

array, string or numeric data to be added to the prepared statement. Quantity of items passed must match quantity of placeholders in the prepared statement: meaning 1 placeholder for non-array parameters or 1 placeholder per array element.

Return value

mixed - a new DB_result object for queries that return results (such as SELECT queries), DB_OK for queries that manipulate data (such as INSERT queries) or a DB_Error object on failure


Possible PEAR_Error values
Error code Error message Reason Solution
DB_ERROR_INVALID invalid SQL statement handle is not valid. Check correct processing of the SQL statement with prepare(). Note that execute() requires a handle to the statement returned by prepare(), not the statement itself.
DB_ERROR_MISMATCH mismatch Quantity of parameters didn't match quantity of placeholders in the prepared statement. Check that the number of placeholders in the prepare() statement passed to $query equals the count of entries passed to $params.
DB_ERROR_NODBSELECTED no database selected No database was chosen. Check the DSN in connect().
every other error code   Database specific error Check the database related section of PHP-Manual to detect the reason for this error. In the most cases a misformed SQL statement. Ie. using LIMIT in a SQL-Statment for an Oracle database.


This function can not be called statically.

The values passed in $data must be literals. Do not submit SQL functions (for example CURDATE()). SQL functions that should be performed at execution time need to be put in the prepared statement.


Passing a scalar to execute()

// Once you have a valid DB object named $db...
$sth $db->prepare('INSERT INTO numbers (number) VALUES (?)');
if (
PEAR::isError($sth)) {

$res =& $db->execute($sth1);
if (
PEAR::isError($res)) {

Passing an array to execute()

// Once you have a valid DB object named $db...
$sth $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');

$data = array(1'one''en');
Escapes a string according to the current DBMS's standards (Previous) Runs a prepared SQL statement for each element of an array (Next)
Last updated: Sun, 04 Oct 2015 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.