(PHP 5)
mysqli::store_result -- mysqli_store_result — 直近のクエリから結果セットを転送する
link
手続き型のみ: mysqli_connect() あるいは mysqli_init() が返すリンク ID。
option
The option that you want to set. It can be one of the following values:
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() を参照ください。