PEAR Manual
Prev |  | Next

# Introduction - Query

Introduction - Query -- Performing queries

## Description

PEAR DB provides several methods for querying databases. The most direct method is query(). It takes a SQL query string as an argument. There are three possible returns: a new DB_result object for queries that return results (such as SELECT queries), `DB_OK` for queries that manipulate data (such as INSERT queries) or a DB_Error object on failure.

Example 33-1. Doing a query
    <?php
    // Create a valid DB object named $db
    // at the beginning of your program...
    require_once 'DB.php';

    $db =& DB::connect('pgsql://usr:pw@localhost/dbnam');
    if (PEAR::isError($db)) {
        die($db->getMessage());
    }

    // Proceed with a query...
    $res =& $db->query('SELECT * FROM clients');

    // Always check that result is not an error
    if (PEAR::isError($res)) {
        die($res->getMessage());
    }
    ?>

query() can be used instead of prepare() and execute(), if you set the `$params` parameter and your query uses placeholders.

Example 33-2. Using query in prepare/execute mode with a scalar parameter
    <?php
    // Once you have a valid DB object named $db...
    $sql  = 'select * from clients where clientid = ?';
    $data = 53;

    $res =& $db->query($sql, $data);

    // Always check that result is not an error
    if (PEAR::isError($res)) {
        die($res->getMessage());
    }
    ?>

Example 33-3. Using query in prepare/execute mode with an array parameter
    <?php
    // Once you have a valid DB object named $db...
    $sql  = 'select * from clients where clientid = ? and statusid = ?';
    $data = array(53, 4);

    $res =& $db->query($sql, $data);

    // Always check that result is not an error
    if (PEAR::isError($res)) {
        die($res->getMessage());
    }
    ?>

Prev | Home | Next
Introduction - Connect | Up | Introduction - Results