mysqli
PHP Manual

mysqli::store_result

mysqli_store_result

(PHP 5)

mysqli::store_result -- mysqli_store_result直近のクエリから結果セットを転送する

説明

オブジェクト指向型

mysqli_result mysqli::store_result ([ int $option ] )

手続き型

mysqli_result mysqli_store_result ([ int $option ] )

mysqli_data_seek() で使用される、 link で表されたデータベース接続の直近のクエリ から結果セットを転送します。

パラメータ

link

手続き型のみ: mysqli_connect() あるいは mysqli_init() が返すリンク ID。

option

The option that you want to set. It can be one of the following values:

Valid options
Name Description
MYSQLI_STORE_RESULT_COPY_DATA Copy results from the internal mysqlnd buffer into the PHP variables fetched. By default, mysqlnd will use a reference logic to avoid copying and duplicating results held in memory. For certain result sets, for example, result sets with many small rows, the copy approach can reduce the overall memory usage because PHP variables holding results may be released earlier (available with mysqlnd only, since PHP 5.6.0)

返り値

バッファに格納した結果オブジェクトを返します。エラー時には FALSE を返します。

注意:

mysqli_store_result() は、クエリが結果セットを 返さなかった場合(例えば、クエリが INSERT 文であった場合)に FALSE を返します。また、結果セットの読み込みに失敗した場合にも FALSE を返します。エラーが発生したかどうかを調べるには、 mysqli_error() が空文字列以外を返す・ mysqli_errno() がゼロ以外の値を返す・あるいは mysqli_field_count() がゼロ以外の値を返す のいずれかを確認します。それ以外にこの関数が FALSE を返す理由としては mysqli_query() のコールに成功して返された 結果セットが大きすぎる(メモリに割り当てられない)場合がありえます。 もし mysqli_field_count() がゼロ以外の値を 返した場合、文は空でない結果セットを生成しています。

注意

注意:

クエリ結果が使用するメモリを mysqli_free_result() 関数で開放するのは、どんな場合でも大切です。しかし、大きい結果セットを mysqli_store_result() で転送した際は、特にこれが 重要となります。

mysqli_multi_query() を参照ください。

参考


mysqli
PHP Manual