DB_common::execute()
Description
Merges the SQL statement you submitted to prepare() with the information in $data and then sends the query to the database.
Parameter
- 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
Throws
Table 39-1. 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. |
Note
This function can not be called statically.
| Warning |
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. |
Example
Example 39-1. Passing a scalar to execute()
|
Example 39-2. Passing an array to execute()
|
