integer executeMultiple (
resource $stmt
,
array $data
)
Automatically passes the information in
$data (a multi-dimensional array) to
execute(), which then runs
the SQL statement you submitted to
prepare().
$stmt
query handle from prepare()
$data
a numeric array containing the data to insert into the query
| 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 executeMultiple() 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-Statement for an Oracle database. |
This function can not be called statically.
If an error occurs during execution, the function will be stopped. Possible remaining data will be unprocessed.
The values passed in
$datamust be literals. Do not submit SQL functions (for exampleCURDATE()). SQL functions that should be performed at execution time need to be put in the prepared statement.
Using executeMultiple()
<?php
// Once you have a valid DB object named $db...
$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');
if (PEAR::isError($sth)) {
die($sth->getMessage());
}
$alldata = array(array(1, 'one', 'en'),
array(2, 'two', 'to'),
array(3, 'three', 'tre'),
array(4, 'four', 'fire'));
$res =& $db->executeMultiple($sth, $alldata);
if (PEAR::isError($res)) {
die($res->getMessage());
}
?>