説明
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);
?
|
|