PEAR DB fournit plusieurs méthodes pour interroger les bases de données. La méthode la plus directe est query(). Il prend en tant que paramètre la requête. Il y a trois retours possibles : un nouvel objet DB_result pour les requêtes qui retournent des résultats (comme les requêtes SELECT), DB_OK pour les requêtes qui manipulent des données (comme les requêtes INSERT) ou un objet DB_Error en cas d'erreur.
Exécuter une requête
<?php
// Création d'un objet DB valide nommé $db
// en début de votre programme...
require_once 'DB.php';
$db =& DB::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($db)) {
die($db->getMessage());
}
// Exécution de la requête
$res =& $db->query('SELECT * FROM clients');
// Vérifiez toujours que $res n'est pas une erreur
if (PEAR::isError($res)) {
die($res->getMessage());
}
?>
query() peut être utilisée à la place de prepare() et execute(), si vous utilisez le paramètre $params et que vous posissionnez vos marqueurs.
Utiliser une requête en mode prepare/execute avec un paramètre scalaire
<?php
// On suppose que vous avez un objet $db valide...
$sql = 'select * from clients where clientid = ?';
$data = 53;
$res =& $db->query($sql, $data);
// Vérifiez toujours que $res n'est pas une erreur
if (PEAR::isError($res)) {
die($res->getMessage());
}
?>
Utiliser une requête en mode prepare/execute avec un tableau en paramètre
<?php
// On suppose que vous avez un objet $db valide...
$sql = 'select * from clients where clientid = ? and statusid = ?';
$data = array(53, 4);
$res =& $db->query($sql, $data);
// Vérifiez toujours que $res n'est pas une erreur
if (PEAR::isError($res)) {
die ($res->getMessage());
}
?>