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.

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

Possible PEAR_Error values
Error code Error message Reason Solution
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

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

)

    

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

)

    

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

)

    

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());

}

?>

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());

}

?>