ホームページ >バックエンド開発 >PHPチュートリアル >「json_encode()」を使用して、MySQL クエリ結果を PHP で JSON として効率的にエンコードするにはどうすればよいですか?

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 08:21:11860ブラウズ

How Can I Efficiently Encode MySQL Query Results as JSON in PHP Using `json_encode()`?

json_encode() を使用した MySQL 結果の JSON エンコード

json_encode() は、データを JSON 形式に変換する PHP の便利な関数です。 MySQL クエリ結果の場合、この関数を使用するにはさまざまな方法があります。

各行を手動で繰り返す必要がありますか、それとも結果オブジェクト全体に json_encode() を適用できますか?

反復の使用

古い PHP バージョンの場合、最も簡単な方法は、次を使用して結果セット内の各行を反復処理することです。 while ループ。以下に例を示します。

<?php
$sth = mysqli_query($conn, "SELECT ...");
$rows = array();

while ($r = mysqli_fetch_assoc($sth)) {
  $rows[] = $r;
}

print json_encode($rows);
?>

json_encode() は連想配列 (キーと値のペア) を想定しているため、mysqli_fetch_assoc() は行を連想配列としてフェッチすることに注意してください。

mysqli_fetch_all の使用() (モダンなアプローチ)

最新の PHP バージョンには、一度にすべての行をフェッチできる mysqli_fetch_all() 関数が組み込まれています。これにより、エンコード プロセスが簡素化されます。

<?php
$result = mysqli_query($conn, "SELECT ...");
$rows = mysqli_fetch_all($result); // list arrays with values only in rows

// Or, for associative arrays:
$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);

print json_encode($rows);
?>

追加メモ

  • json_encode() には、PHP バージョン 5.2 以降が必要です。
  • php -json パッケージも必要です。
  • 問題がある場合は、PHP 構成で JSON サポートが有効になっていることを確認してください。

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

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