TOP書籍連動> ユーティリティ関数
PDOの紹介
PDOの紹介

第4回:データの検索とその他機能の紹介

著者:Ilia Alshanetsky   2005/12/28
前のページ   1  2  3
ユーティリティ関数

   今まで紹介してきた機能以外にも、PDOでは様々な操作を簡単にする多くのユーティリティ関数を提供しています。PDOStatementオブジェクトのcolumnCount()メソッドは結果セットのカラム数を返します。特定のカラムについての情報を取得するためのgetColumnMeta()メソッドと組み合わせて使用することもできます。

   このメソッドではデータベース特有のカラムの情報以外にも、すべてのデータベースドライバで使用可能なPDO独自の情報が含まれます。

$c = $stmt->columnCount();
for ($i=0; $i < $c; $i++) {
$meta_data = $stmt->getColumnMeta($i);
}

   カラムの番号は今度は0からはじまります。返り値は連想配列形式で以下の情報を含んでいます。

native_type PHPのデータ型
driver:decl_type データベースでのカラムのデータ型
flags 配列形式で保存されている、カラムに特有のフラグ
name データベースから取得したカラム名(一般化はされていない)
len カラムが文字列で長さの制限がある場合にセットされます。長さに制限がない場合は-1がセットされます
precision カラムの数値型の桁数
pdo_type PDO でのカラムの種類で、PDO_PARAM 形式の定数がセットされます

表1:返り値が含む情報


   次にPDOStatement オブジェクトのrowCount()メソッドを紹介します。バッファードクエリを使用するデータベースでは、このメソッドで結果セットの行数を取得することができます。データベースがこの機能をサポートしていない場合や、アンバッファードクエリが使用されている場合は-1が返されます。

$db->query("SELECT * FROM users");
$db->rowCount();
// returns -1, since unbuffered queries are used by default
$db->setAttribute(PDO_MYSQL_ATTR_USE_BUFFERED_QUERY,1);
$db->query("SELECT * FROM users");
$db->rowCount();
// return a value row count, since the query is now buffered.
前のページ  1  2  3


Ilia Alshanetsky
著者プロフィール
Ilia Alshanetsky
PHP開発チームの活動メンバーの1人であり、現在のPHP 4.3.X.のリリースマネージャー。また、オープンソース掲示板FUDフォーラム(http://fud.prohost.org/forum/)をはじめとする数多くのプロジェクトにも貢献している。


INDEX
第4回:データの検索とその他機能の紹介
  バインドメカニズム
  プリペアードステートメント
ユーティリティ関数