sesam_query
(PHP 3 CVS only)
sesam_query -- SESAM SQL クエリを実行し、結果を準備する
説明
string
sesam_query ( string query, bool
[scrollable])
返り値: 成功時にSESAM "結果ID" またはエラー時に
FALSE。
"result_id"リソースは、クエリ結果を取得する際に他の関数で使用され
ます。
sesam_query() は、クエリをサーバ上の現在アクティ
ブなデータベースに送信します。この関数は、"即時"SQL命令および
"select型"クエリの両方を実行可能です。"即時型"命令を実行した場合、
カーソルは確保されず、この後に
sesam_fetch_row() または
sesam_fetch_result() をコールしても空の結果(結
果の終端を示すカラム数0)が返されます。"select型"命令の場合、結果
記述子および(オプションのパラメータ
scrollableの設定によりスクロール型または連
続型の)カーソルが確保されます。scrollable
が省略された場合、カーソルは連続型となります。
"スクロール型"カーソルを使用している場合、カーソルは結果集合上を
自由に移動可能です。各"スクロール型"クエリに関して、スクロール型
のグローバルデフォルト値(SESAM_SEEK_NEXTに初期
化されています)と sesam_seek_row() により一度
設定するか、sesam_fetch_row() を使用してレコー
ドを取得する度に設定するスクロールオフセットがあります。
"即時型"命令の場合、作用されたレコードの数が保存されます。この数
は、sesam_affected_rows() 関数で取得可能です。
sesam_fetch_row() および
sesam_fetch_result() も参照下さい。
例 1.
"phone"テーブルの全てのレコードをHTMLテーブルとして表示
<?php if (!sesam_connect ("phonedb", "demo", "otto")) die ("cannot connect"); $result = sesam_query ("select * from phone"); if (!$result) { $err = sesam_diagnostic(); die ($err["errmsg"]); } echo "<TABLE BORDER>\n"; // Add title header with column names above the result: if ($cols = sesam_field_array ($result)) { echo " <TR><TH COLSPAN=".$cols["count"].">Result:</TH></TR>\n"; echo " <TR>\n"; for ($col = 0; $col < $cols["count"]; ++$col) { $colattr = $cols[$col]; /* Span the table head over SESAM's "Multiple Fields": */ if ($colattr["count"] > 1) { echo " <TH COLSPAN=".$colattr["count"].">".$colattr["name"]. "(1..".$colattr["count"].")</TH>\n"; $col += $colattr["count"] - 1; } else echo " <TH>" . $colattr["name"] . "</TH>\n"; } echo " </TR>\n"; }
do { // Fetch the result in chunks of 100 rows max. $ok = sesam_fetch_result ($result, 100); for ($row=0; $row < $ok["rows"]; ++$row) { echo " <TR>\n"; for ($col = 0; $col < $ok["cols"]; ++$col) { if (isset($ok[$col][$row])) echo " <TD>" . $ok[$col][$row] . "</TD>\n"; } else { echo " <TD>-empty-</TD>\n"; } } echo " </TR>\n"; } } while ($ok["truncated"]) { // while there may be more data echo "</TABLE>\n"; } // free result id sesam_free_result($result); ?>
|
|