無料CGI、PHPサイト(確認画面付きメールフォーム・メーリングリスト・メルマガ設置、逆アクセスランキング、画像カウンター等)PHPマニュアル by k-sky

sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_querySybase クエリを送信し、ブロックしない

説明

resource sybase_unbuffered_query ( string $query , resource $link_identifier [, bool $store_result ] )

sybase_unbuffered_query() は、指定したリンク ID に 関連付けられたサーバ上の現在アクティブなデータベースにクエリを送信します。 リンク ID が指定されていない場合は、直近にオープンされたリンクが 指定されたものと仮定します。リンクがオープンされていない場合は、 sybase_connect() がコールされた場合と同様の手順で リンクのオープンを試み、それを使用します。

sybase_query() とは異なり、 sybase_unbuffered_query() は結果セットの最初の 行のみを読み込みます。それ以降の行は、必要に応じて sybase_fetch_array() またはそれに類する関数で 読み込みます。sybase_data_seek() は指定した 行を読み込みます。この挙動により、大きな結果セットを扱う際に よりよいパフォーマンスを確保できます。

sybase_num_rows() が正確な行数を返すのは、結果セット 全体が読み込まれた場合のみです。Sybase は行数を知ることができず、 クライアントの実装によって行数を計算しています。

注意: 結果セットをすべて読み込む前に次のクエリを実行しようとした場合、 PHP は警告を発生し、未処理の結果をすべてキャンセルします。これを 避けるには、sybase_free_result() を使用します。 この関数は、バッファリングされていないクエリで未処理の結果を すべてキャンセルします。

パラメータ

query

link_identifier

store_result

結果セットをメモリ中に読み込む必要がないことを指示するため、 オプションの store_resultFALSE を 指定することが可能です。これによってメモリの使用量を抑えることができ、 大きな結果セットを扱う場合に有用です。

返り値

成功時に正の Sybase 結果 ID 、エラー時に FALSE を返します。

例1 sybase_unbuffered_query() の例

<?php

$dbh 
sybase_connect('SYBASE''''');
$q sybase_unbuffered_query('select firstname, lastname from huge_table'$dbhfalse);
sybase_data_seek($q10000);
$i 0;

while (
$row sybase_fetch_row($q)) {
    echo 
$row[0], ' '$row[1], '<br />';
    if (
$i++ > 40000) {
        break;
    }
}

sybase_free_result($q);
sybase_close($dbh);

?>

注意

注意: この関数は、Sybase の CT ライブラリインターフェイスでのみ使用可能で、DB ライブラリでは使用できません。