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 ordered arrays.

Throws

Table 39-1. Possible PEAR_Error values

Error codeError messageReasonSolution
DB_ERROR_INVALID invalid SQL statement 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 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.

Note

This function can not be called statically.

Example

Example 39-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 39-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 39-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 39-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 39-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(510));

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

See

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