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
$data
must 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());
}
?>