ホームページ > データベース > mysql チュートリアル > PHP を使用して MySQL クエリ結果を JSON に効率的にエンコードするにはどうすればよいですか?

PHP を使用して MySQL クエリ結果を JSON に効率的にエンコードするにはどうすればよいですか?

DDD
リリース: 2024-12-23 10:32:37
オリジナル
623 人が閲覧しました

How to Efficiently Encode MySQL Query Results into JSON using PHP?

MySQL クエリ結果の JSON エンコード

MySQL 結果を操作する場合、多くの場合、Web アプリケーションで使用するために結果を JSON 形式に変換する必要があります。他のコンテキスト。 PHP では、組み込みの json_encode() 関数がこの目的によく使用されます。 MySQL クエリ結果で json_encode() を利用する方法を見てみましょう。

反復エンコーディングと直接エンコーディング

1 つのアプローチは、クエリ結果の各行を反復して適用することです。 json_encode() を各行に個別に実行します。これは、while または foreach ループを使用して実行できます。

$sth = mysqli_query($conn, "SELECT ...");
$rows = [];
while($r = mysqli_fetch_assoc($sth)) {
    $rows[] = json_encode($r);
}
ログイン後にコピー

このメソッドでは、JSON 出力をきめ細かく制御できますが、大きな結果セットの場合は非効率になる可能性があります。

結果オブジェクトの直接エンコーディング

もう 1 つのアプローチは、結果オブジェクト全体を直接エンコードすることです。 1 回の呼び出しですべての行を表す JSON 文字列表現:

$sth = mysqli_query($conn, "SELECT ...");
$rows = mysqli_fetch_all($sth, MYSQLI_ASSOC);
$json = json_encode($rows);
ログイン後にコピー

このメソッドを使用すると、各行を反復処理して個別にエンコードする必要がなくなるため、大規模な結果セットの場合により効率的です。

要件

MySQL クエリ結果で json_encode() を使用するには、次のことを確認してください次の要件が満たされていること:

  • PHP バージョン 5.2 以降
  • Php-json パッケージがインストールされロードされている

代替アプローチ

最新の PHP バージョンでも、 mysqli_fetch_all() 関数。結果セットからすべての行を一度に配列にフェッチできます。この配列は、JSON に直接エンコードできます。

$result = mysqli_query($conn, "SELECT ...");
$rows = mysqli_fetch_all($result);
$json = json_encode($rows);
ログイン後にコピー

mysqli_fetch_all() を使用すると、大規模な結果セットの JSON エンコードの効率を向上させることができます。

以上がPHP を使用して MySQL クエリ結果を JSON に効率的にエンコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート