関数・クラス解説
dbx_query
version:PHP 4 >= 4.0.6, PHP 5 < 5.1.0, P (公式)クエリを送信し、(ある場合には)結果を全て取得する
公式リファレンス
書式
dbx_query ( object $link_identifier , string $sql_statement [, int $flags ] ) : mixed
説明
クエリを送信し、すべての結果を取得します。
パラメータ
- link_identifier
- dbx_connect() が返す DBX リンクオブジェクト。
- sql_statement
- SQL 文。 クエリ内のデータは 適切にエスケープ しておかなければなりません。
- flags
- flags パラメータは、返される情報の量を制御する ために使用されます。以下の定数の組み合わせを、論理 OR 演算子 (|) で連結したものとなります。DBX_COLNAMES_* フラグは php.ini の dbx.colnames_case 設定を上書きします。
- DBX_RESULT_INDEX
- これは常に設定され、結果に二次元配列の data プロパティを含めます。たとえば data[2][3] では 2 が行番号 (レコード番号)を表し、3 がカラム番号 (フィールド番号)を表します。最初の行やカラムの番号は 0 です。 DBX_RESULT_ASSOC が指定された場合、返される オブジェクトには DBX_RESULT_INFO に関連する 情報が(指定していなくても)含まれます。
- DBX_RESULT_INFO
- カラムに関する情報、つまりフィールド名とフィールドの型を含めます。
- DBX_RESULT_ASSOC
- 返されるオブジェクトの data プロパティの キーとして、関連するカラム名の値がアクセスされます。 関連付けられた結果は数値添字となっているので、 data[0][0] を変更すると data[0]['最初のカラムのフィールド名'] も同様に 変更されます。
- DBX_RESULT_UNBUFFERED
- このフラグは data プロパティを作成せず、 rows プロパティの初期値を 0 に設定します。 結果セットが大きくなる場合にこのフラグを使用し、 dbx_fetch_row() を使用して結果を 1 行ごとに 取得してください。 dbx_fetch_row() 関数は、このクエリで設定した フラグの内容を反映じた行を返します。また、この関数がコールされる たびに rows が更新されます。
- DBX_COLNAMES_UNCHANGED
- 返されるカラム名の大文字小文字を変更しません。
- DBX_COLNAMES_UPPERCASE
- 返されるカラム名を大文字に変更します。
- DBX_COLNAMES_LOWERCASE
- 返されるカラム名を小文字に変更します。
- DBX_RESULT_INDEX
- DBX_RESULT_INDEX | DBX_RESULT_INFO
- DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - flags を指定しなかった場合、これがデフォルトです。
返値
dbx_query() は、成功した場合に オブジェクトあるいは 1、失敗した場合に 0 を返します。 結果オブジェクトが返されるのは、sql_statement で指定されたクエリが結果セットを生成する場合(例: SELECT クエリ。結果が 0 件の場合も含む)のみです。 返されるオブジェクトは、flags の設定により 4 つまたは 5 つのプロパティを保持します。
- handle
- 接続したデータベースの有効なハンドルで、モジュール専用関数で (必要ならば)使用されます。 <?php$result = dbx_query($link, "SELECT id FROM table");mysql_field_len($result->handle, 0);?>
- cols および rows
- これらは、それぞれカラム数(フィールド数)および行数(レコード数) を表します。 <?php$result = dbx_query($link, 'SELECT id FROM table');echo $result->rows; // レコード数echo $result->cols; // フィールド数?>
- info (オプション)
- flags パラメータに DBX_RESULT_INFO あるいは DBX_RESULT_ASSOC が指定されている場合のみ 返されます。2 次元の配列で、2 つのキー(name および type)を持ち、カラムの情報を取得するために 使用します。 例1 各フィールドの名前と型を一覧表示する <?php$result = dbx_query($link, 'SELECT id FROM table', DBX_RESULT_INDEX | DBX_RESULT_INFO);for ($i = 0; $i < $result->cols; $i++ ) { echo $result->info['name'][$i] . "\n"; echo $result->info['type'][$i] . "\n"; }?>
- data
- このプロパティには結果のデータが含まれます。flags の設定によってはこのデータはカラム名と関連付けられているでしょう。 DBX_RESULT_ASSOC が設定されていた場合、 $result->data[2]["field_name"] のように使用可能です。 例2 data プロパティの内容を HTML テーブルで表示する <?php$result = dbx_query($link, 'SELECT id, parentid, description FROM table');echo "<table>\n";foreach ($result->data as $row) { echo "<tr>\n"; foreach ($row as $field) { echo "<td>$field</td>"; } echo "</tr>\n";}echo "</table>\n";?> 例3 UNBUFFERED クエリの処理法 <?php$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);echo "<table>\n";while ($row = dbx_fetch_row($result)) { echo "<tr>\n"; foreach ($row as $field) { echo "<td>$field</td>"; } echo "</tr>\n";}echo "</table>\n";?>
注意
注意: モジュール固有のドキュメントも参照ください。 Oracle データベースでは、クエリ結果のカラム名は小文字で返されます。
サンプル
例4 返り値を処理する方法
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password")
or die("接続できませんでした");
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');
if (is_object($result) ) {
// ... ここで何かを行います。詳細は以下の例で示します。 ...
// まず、フィールド名とデータ型を表示します。
// 次に、返されたフィールド値をもとに表を作成します。
} else {
exit("クエリに失敗しました");
}
dbx_close($link);
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール