ホームページ  >  記事  >  php教程  >  PHP の mysqli_query パラメータ MYSQLI_STORE_RESULT と MYSQLI_USE_RESULT の違い

PHP の mysqli_query パラメータ MYSQLI_STORE_RESULT と MYSQLI_USE_RESULT の違い

WBOY
WBOYオリジナル
2016-09-22 08:42:121642ブラウズ

この記事では主に、PHP の mysqli_query パラメーター MYSQLI_STORE_RESULT と MYSQLI_USE_RESULT の違いを紹介します。必要な方は参照してください。

nosqlが普及してきましたが、まだまだSQLが主流な気がします

今日php manulを閲覧していたら、mysqliクエリで興味深いパラメータを渡すことができることを発見しました

リーリー
これら 2 つのパラメータは、PHP マニュアルで次のように説明されています。

リーリー
何も渡されない場合、デフォルトは MYSQLI_STORE_RESULT になります。

誰かが phpmanul でこれを言いました: 大量のデータを取得する必要がある場合は、MYSQLI_USE_RESULT を使用します

実際、これら 2 つのパラメータの差は依然として非常に大きいです。

(1) 違いは、サーバーから結果セットの行を取得する点です。

(2) MYSQLI_USE_RESULT はクエリを開始しますが、実際には行をフェッチしません
(3) MYSQLI_STORE_RESULT はすぐにすべての行を取得します
(4) MYSQLI_STORE_RESULT 結果セットがサーバーから取得されると、行が抽出され、それらの行にメモリが割り当てられます, クライアントに保存されているため、mysqli_fetch_array() への以降の呼び出しでは、結果セットを既に保持しているデータ構造から行を削除するだけなので、エラーが返されることはありません。NULL を返す Mysqli_fetch_array() は、常に結果セットの終わりを示します。に達しました。
(5) MYSQLI_USE_RESULT 自体は行を取得せず、行ごとの取得を開始するだけです。つまり、行ごとに mysqli_fetch_array() を呼び出して完了する必要があります。そのため、通常の状況では、mysqli_fetch_array() が NULL を返す場合でも、結果セットの最後に到達したことを示しますが、サーバーとの通信中にエラーが発生したことを示す場合もあります。

概要

MYSQLI_USE_RESULT と比較すると、MYSQLI_STORE_RESULT はより多くのメモリと処理要件を必要とします。結果セット全体がクライアント上で保持されるため、一度に複数の行を取得する場合、メモリ割り当てとデータ構造の作成のコストが非常に大きくなります。 MYSQLI_USE_RESULT を使用できます。

MYSQLI_USE_RESULT は、毎回処理される 1 行に十分なスペースのみが割り当てられるため、メモリ要件が低くなります。結果セット用の複雑なデータ構造を作成する必要がないため、この方が高速です。一方、MYSQLI_USE_RESULT はサーバーに大きな負荷をかけるため、クライアントがすべての行を取得するのに適していると判断されるまで、結果セット内の行を保持する必要があります。

参考文献: http://www.manongjc.com/article/1195.html

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。