PEAR Manual
Prev |  | Next

# DB_common::getRow()

DB_common::getRow() -- Runs a query and returns the first row

## Synopsis

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

## Description

Runs the query provided and puts the first row of data into an 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. DB's current default fetch mode can be changed using setFetchMode(). Potential values include:

  - `DB_FETCHMODE_ORDERED`

  - `DB_FETCHMODE_ASSOC`

  - `DB_FETCHMODE_OBJECT`

## Return value

array - the first row's data in an array or a DB_Error object on failure. The array may be ordered or associative depending on `$fetchmode`. The column index starts at 0 for orderd arrays.

## 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 getRow() with `$fetchmode` = `DB_FETCHMODE_ORDERED`
    <?php
    // Once you have a valid DB object named $db...
    $data =& $db->getRow('SELECT cf, df FROM foo',
            array(), DB_FETCHMODE_ORDERED);

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

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

Example 33-2. Using getRow() with `$fetchmode` = `DB_FETCHMODE_ASSOC`
    <?php
    // Once you have a valid DB object named $db...
    $data =& $db->getRow('SELECT cf, df FROM foo',
            array(), DB_FETCHMODE_ASSOC);

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

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

Example 33-3. Using getRow() with `$fetchmode` = `DB_FETCHMODE_OBJECT`
    <?php
    // Once you have a valid DB object named $db...
    $data =& $db->getRow('SELECT cf, df FROM foo',
            array(), DB_FETCHMODE_OBJECT);

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

    print_r($data);
    ?>
Output:
    stdClass Object
    (
        [cf] => Juan
        [df] => 1991-01-11 21:31:41
    )

Example 33-4. Using getRow() with one placeholder
    <?php
    // Once you have a valid DB object named $db...
    $data =& $db->getRow('SELECT cf, df FROM foo WHERE nf = ?',
            array(5));

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

Example 33-5. Using getRow() with two placeholders
    <?php
    // Once you have a valid DB object named $db...

    $data =& $db->getRow('SELECT cf, df FROM foo WHERE nf IN (?, ?)',
            array(5, 10));

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

## See

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

Prev | Home | Next
DB_common::getOption() | Up | DB_common::limitQuery()