検索
ホームページ类库下载PHP类库MYSQLI_STORE_RESULT と MYSQLI_USE_RESULT の違い

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

nosql が普及してきましたが、依然として SQL が主流であると感じます。今日php manulを閲覧していて、mysqliクエリが興味深いパラメータを渡すことができることを発見しました

@mysqli_query($this->sql,$SQL,($method ? MYSQLI_USE_RESULT : MYSQLI_STORE_RESULT));

これら2つのパラメータはphp manulで次のように説明されています。

Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, MYSQLI_STORE_RESULT is used.

何も渡されない場合、デフォルトは 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 はより多くのメモリと処理要件を必要とします。結果セット全体がクライアント上で保持されるため、複数のデータを取得する場合、メモリの割り当てとデータ構造の作成のコストが非常に大きくなります。 1 回だけ OK、MYSQLI_USE_RESULT が利用可能です。

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


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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール