PEAR Manual
Prev |  | Next

# DB_common::getAll()

DB_common::getAll() -- Runs a query and returns all the data as an array

## Synopsis

``array &getAll` (string $query [, array $params = array() [, integer $fetchmode = `DB_FETCHMODE_DEFAULT`]])`

## Description

Runs the query provided and puts the entire result set into a nested array then frees the result set.

## Parameter

string `$query`

  the SQL query or the statement to prepare

array `$params`

  array to be used in execution of the statement. Quantity of array elements must match quantity of placeholders in query.

  If supplied, prepare()/ execute() is used.

  Warning
  This method does not allow scalars to be used for this argument.

integer `$fetchmode`

  the fetch mode to use. The default is `DB_FETCHMODE_DEFAULT`, which tells this method to use DB's current fetch mode. The current fetch mode can be changed using setFetchMode(). Potential values include:

  - `DB_FETCHMODE_ORDERED`

  - `DB_FETCHMODE_ASSOC`

  - `DB_FETCHMODE_OBJECT`

  - `DB_FETCHMODE_ORDERED` | `DB_FETCHMODE_FLIPPED`

  - `DB_FETCHMODE_ASSOC` | `DB_FETCHMODE_FLIPPED`

## Return value

array - a nested array or a DB_Error on failure

## Throws

Table 33-1. Possible PEAR_Error values

Error code | Error message | Reason | Solution
--- | --- | --- | ---
`DB_ERROR_INVALID` | invalid | SQL statment for preparing is not valid. | See the prepare() documentation, if you want to use a SQL statemt using placeholders.
`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.

## Example

Example 33-1. Using getAll() to return an associative array by setting the default fetch mode first
    <?php
    // Once you have a valid DB object named $db...
    $db->setFetchMode(DB_FETCHMODE_ASSOC);
    $data =& $db->getAll('SELECT cf, nf, df FROM foo');

    if (PEAR::isError($data)) {
        die($data->getMessage());
    }

    print_r($data);
    ?>
Output:
    Array
    (
        [0] => Array
            (
                [cf] => Juan
                [nf] => 5
                [df] => 1991-01-11 21:31:41
            )
        [1] => Array
            (
                [cf] => Kyu
                [nf] => 10
                [df] => 1992-02-12 22:32:42
            )
    )

Example 33-2. Using getAll() to return an ordered array
    <?php
    // Once you have a valid DB object named $db...
    $data =& $db->getAll('SELECT cf, nf, df FROM foo',
            array(), DB_FETCHMODE_ORDERED);

    if (PEAR::isError($data)) {
        die($data->getMessage());
    }

    print_r($data);
    ?>
Output:
    Array
    (
        [0] => Array
            (
                [0] => Juan
                [1] => 5
                [2] => 1991-01-11 21:31:41
            )
        [1] => Array
            (
                [0] => Kyu
                [1] => 10
                [2] => 1992-02-12 22:32:42
            )
    )

Example 33-3. Using getAll() to return a flipped ordered array
    <?php
    // Once you have a valid DB object named $db...
    $data =& $db->getAll('SELECT cf, nf, df FROM foo',
            array(), DB_FETCHMODE_ORDERED | DB_FETCHMODE_FLIPPED);

    if (PEAR::isError($data)) {
        die($data->getMessage());
    }

    print_r($data);
    ?>
Output:
    Array
    (
        [0] => Array
            (
                [0] => Juan
                [1] => Kyu
            )
        [1] => Array
            (
                [0] => 5
                [1] => 10
            )
        [2] => Array
            (
                [0] => 1991-01-11 21:31:41
                [1] => 1992-02-12 22:32:42
            )
    )

Example 33-4. Using getAll() to return an associative array
    <?php
    // Once you have a valid DB object named $db...
    $data =& $db->getAll('SELECT cf, nf, df FROM foo',
            array(), DB_FETCHMODE_ASSOC);

    if (PEAR::isError($data)) {
        die($data->getMessage());
    }

    print_r($data);
    ?>
Output:
    Array
    (
        [0] => Array
            (
                [cf] => Juan
                [nf] => 5
                [df] => 1991-01-11 21:31:41
            )
        [1] => Array
            (
                [cf] => Kyu
                [nf] => 10
                [df] => 1992-02-12 22:32:42
            )
    )

Example 33-5. Using getAll() to return a flipped associative array
    <?php
    // Once you have a valid DB object named $db...
    $data =& $db->getAll('SELECT cf, nf, df FROM foo',
            array(), DB_FETCHMODE_ASSOC | DB_FETCHMODE_FLIPPED);

    if (PEAR::isError($data)) {
        die($data->getMessage());
    }

    print_r($data);
    ?>
Output:
    Array
    (
        [cf] => Array
            (
                [0] => Juan
                [1] => Kyu
            )
        [nf] => Array
            (
                [0] => 5
                [1] => 10
            )
        [df] => Array
            (
                [0] => 1991-01-11 21:31:41
                [1] => 1992-02-12 22:32:42
            )
    )

Example 33-6. Using getAll() to return an array of objects
    <?php
    // Once you have a valid DB object named $db...
    $data =& $db->getAll('SELECT cf, nf, df FROM foo',
            array(), DB_FETCHMODE_OBJECT);

    if (PEAR::isError($data)) {
        die($data->getMessage());
    }

    print_r($data);
    ?>
Output:
    Array
    (
        [0] => stdClass Object
            (
                [cf] => Juan
                [nf] => 5
                [df] => 1991-01-11 21:31:41
            )
        [1] => stdClass Object
            (
                [cf] => Kyu
                [nf] => 10
                [df] => 1992-02-12 22:32:42
            )
    )

Example 33-7. Using getAll() in prepare/execute mode to return an associative array
    <?php
    // Once you have a valid DB object named $db...
    $data =& $db->getAll('SELECT cf, nf, df FROM foo WHERE nf = ?',
            array(5), DB_FETCHMODE_ASSOC);

    if (PEAR::isError($data)) {
        die($data->getMessage());
    }

    print_r($data);
    ?>
Output:
    Array
    (
        [0] => Array
            (
                [cf] => Juan
                [nf] => 5
                [df] => 1991-01-11 21:31:41
            )
    )

## See

setFetchMode(), getOne(), getRow(), getCol(), getAssoc(), query(), "Intro - Prepare & Execute"

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