PEAR Manual
Prev |  | Next

# DB_common::executeMultiple()

DB_common::executeMultiple() -- Runs a prepared SQL statment for each element of an array

## Synopsis

``integer executeMultiple` (resource $stmt, array $data)`

## Description

Automatically passes the information in `$data` (a multi-dimensional array) to execute(), which then runs the SQL statment you submitted to prepare().

## Parameter

resource `$stmt`

  query handle from prepare()

array `$data`

  a numeric array containing the data to insert into the query

## Return value

integer - `DB_OK` on success or a DB_Error object on failure

## Throws

Table 33-1. Possible PEAR_Error values

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.

## Note

This function can not be called statically.

Warning
If an error occurs during execution, the function will be stopped. Possible remaining data will be unprocessed.

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 33-1. 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());
    }
    ?>

## See

"Intro - Prepare & Execute", "Intro - autoPrepare & autoExecute", prepare(), execute(), autoPrepare(), autoExecute()

Prev | Home | Next
DB_common::execute() | Up | DB_common::freePrepared()