ホームページ >データベース >mysql チュートリアル >MySQL クエリ結果を PHP で JSON として効率的にエンコードするにはどうすればよいですか?
PHP では、json_encode() 関数を使用して PHP データを JSON 形式に変換します。 JSON は広くサポートされているデータ形式であるため、これは Web アプリケーションまたは API にデータを送信するときに役立ちます。
しかし、MySQL クエリ結果で json_encode() を使用するにはどうすればよいでしょうか?結果の各行を反復する必要がありますか?それとも結果オブジェクト全体に適用できますか?
<?php $mysqli = new mysqli("host", "username", "password", "database"); $result = $mysqli->query("SELECT * FROM table"); $rows = array(); while ($row = $result->fetch_assoc()) { $rows[] = $row; } $json_data = json_encode($rows); echo $json_data; ?>
この例では、最初に接続しますmysqli クラスを使用して MySQL データベースに接続します。次に、データベースに対してクエリを実行し、結果のオブジェクト ($result) が $result 変数に保存されます。
fetch_assoc() メソッドを使用して、結果の行を連想配列 ($row) としてフェッチします。 。次に、各連想配列 ($row) を $rows 配列に追加します。
最後に、$rows 配列に対して json_encode() を使用して、JSON 形式に変換します。 json_data 文字列は、適切と思われる任意の方法で印刷または使用できます。
PHP バージョン 5.3 以降では、上記のコードを次のように簡素化する mysqli_fetch_all() がサポートされています。
<?php $mysqli = new mysqli("host", "username", "password", "database"); $result = $mysqli->query("SELECT * FROM table"); $rows = $result->fetch_all(MYSQLI_ASSOC); // get associative arrays $json_data = json_encode($rows); echo $json_data; ?>
付きmysqli_fetch_all() を使用すると、行を一度に取得できるため、ループが節約され、上記と同じ結果が得られます。
以上がMySQL クエリ結果を PHP で JSON として効率的にエンコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。