PEAR DB は、データベースに対するクエリを実行するための方法をいくつか 提供しています。一番直接的な方法は query() です。これは SQL クエリ文字列を 引数として受け取ります。返される可能性のある値は以下の 3 種類です。 結果を返すクエリ (例えば SELECT クエリなど) の場合は新しい DB_result オブジェクト、 データを操作するクエリ (例えば INSERT クエリなど) の場合は DB_OK、 あるいは失敗した場合には DB_Error オブジェクトを返します。
クエリを実行する
<?php
// プログラムの最初で、$db という名前の
// 有効な DB オブジェクトを作成します...
require_once 'DB.php';
$db =& DB::connect('pgsql://usr:pw@localhost/dbnam');
if (PEAR::isError($db)) {
die($db->getMessage());
}
// クエリを実行します...
$res =& $db->query('SELECT * FROM clients');
// 結果がエラーでないか常にチェックして下さい
if (PEAR::isError($res)) {
die($res->getMessage());
}
?>
パラメータ $params
を指定しており、かつ
クエリでプレースホルダを使用している場合は、
query() は
prepare() および
execute() に代わるものとして使用されます。
スカラパラメータを含むクエリを準備・実行モードで使用する方法
<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$sql = 'select * from clients where clientid = ?';
$data = 53;
$res =& $db->query($sql, $data);
// 結果がエラーでないか常にチェックして下さい
if (PEAR::isError($res)) {
die($res->getMessage());
}
?>
配列パラメータを含むクエリを準備・実行モードで使用する方法
<?php
// $db という名前の DB オブジェクトが作成済みであると仮定します...
$sql = 'select * from clients where clientid = ? and statusid = ?';
$data = array(53, 4);
$res =& $db->query($sql, $data);
// 結果がエラーでないか常にチェックして下さい
if (PEAR::isError($res)) {
die($res->getMessage());
}
?>