DB_common::executeMultiple() -- Runs a prepared SQL statment for each element of an array ïÐÉÓÁÎÉÅ
Automatically passes the information in
$data (a multi-dimensional array) to
execute(), which then runs
the SQL statment you submitted to
prepare().
ðÁÒÁÍÅÔÒ
- resource
$stmt
query handle from
prepare()
- array
$data
a numeric array containing the
data to insert into the query
÷ÏÚ×ÒÁÝÁÅÍÏÅ ÚÎÁÞÅÎÉÅ
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
Таблица 22-1. ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ PEAR_Error Error code | Error message | Reason | Solution |
---|
DB_ERROR_INVALID |
invalid
|
SQL statment handle is not valid.
|
Check correct processing of the SQL statment with
prepare(). Note that
executeMultiple()
requires a handle to the statement
returned by
prepare(), not the statment itself.
| DB_ERROR_MISMATCH |
mismatch
|
Quantity of parameters didn't match quantity of placeholders in
the prepared statment.
|
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 choosen.
|
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 statment. Ie. using LIMIT in a SQL-Statment
for an Oracle database.
|
úÁÍÅÔËÁüÔÁ ÆÕÎËÃÉÑ ÎÅ ÄÏÌÖÎÁ ×ÙÚÙ×ÁÔØÓÑ ÓÔÁÔÉÞÅÓËÉ. Внимание |
If an error occurs during execution, the function will be stopped.
Possible remaining data will be unprocessed.
|
ðÒÉÍÅÒПример 22-1. Using executeMultiple()
<?php
// Once you have a valid DB object named $db...
$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');
if (DB::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 (DB::isError($res)) {
die($res->getMessage());
}
?>
|
|
|