json_encode() ialah fungsi berguna dalam PHP yang menukar data kepada format JSON. Untuk hasil pertanyaan MySQL, terdapat pelbagai pendekatan untuk menggunakan fungsi ini.
Adakah anda perlu mengulangi setiap baris secara manual atau bolehkah anda menggunakan json_encode() pada keseluruhan objek hasil?
Menggunakan Lelaran
Untuk versi PHP yang lebih lama, kaedah yang paling mudah adalah untuk melelaran melalui setiap baris dalam set hasil menggunakan gelung sementara. Berikut ialah contoh:
<?php $sth = mysqli_query($conn, "SELECT ..."); $rows = array(); while ($r = mysqli_fetch_assoc($sth)) { $rows[] = $r; } print json_encode($rows); ?>
Perhatikan bahawa json_encode() menjangka tatasusunan bersekutu (pasangan nilai kunci), jadi mysqli_fetch_assoc() mengambil baris sebagai tatasusunan bersekutu.
Menggunakan mysqlill () (Moden Pendekatan)
Versi PHP moden mempunyai fungsi mysqli_fetch_all() terbina dalam yang membolehkan anda mengambil semua baris sekali gus. Ini memudahkan proses pengekodan:
<?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); ?>
Nota Tambahan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekodkan Hasil Pertanyaan MySQL dengan Cekap sebagai JSON dalam PHP Menggunakan `json_encode()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!