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 バージョンでも、 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 サイトの他の関連記事を参照してください。