PEAR::DB bietet verschiedene Methode um Anweisungen an eine Datenbank abzuschicken. Die direkte Methode ist query(). Sie erwartet eine SQL-Abfrage als erstes Argument. Drei Werte können zurückgeliefert werden:
Ein neues DB_result-Objekt für Abfragen, die eine Ergebnismenge zurückliefern, wie SELECT-Anweisungen.
DB_OK für Abfragen, die Daten manipulieren, wie die INSERT-Anweisung.
Oder ein DB_Error-Objekt, wenn ein Fehler auftrat.
Eine Abfrage durchführen
<?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());
}
?>
Die query()-Methode kann anstatt prepare() und execute() verwendet werden, wenn der Parameter $params gesetzt ist und die Abfrage Platzhalter enthält.
Eine Abfrage wie prepare/execute mit einem Platzhalter
<?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());
}
?>
Eine Abfrage wie prepare/execute mit mehreren Platzhaltern
<?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());
}
?>