Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengekodkan Keputusan Pertanyaan MySQL dengan cekap sebagai JSON dalam PHP?

Bagaimana untuk Mengekodkan Keputusan Pertanyaan MySQL dengan cekap sebagai JSON dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-18 10:40:101052semak imbas

How to Efficiently Encode MySQL Query Results as JSON in PHP?

Json Encoding MySQL Result Sets

Query Execution and Retrieval

Untuk mendapatkan semula data daripada pangkalan data MySQL dan menyimpannya dalam pembolehubah PHP, anda boleh gunakan mysqli_query():

$sth = mysqli_query($conn, "SELECT ...");

Pengekodan Hasil JSON

Untuk mengekod hasil pertanyaan dalam format JSON, anda boleh menggunakan fungsi json_encode(). Walau bagaimanapun, anda perlu mengulangi hasil dan mengekod setiap baris secara individu:

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

Keperluan untuk Pengekodan JSON

Perhatikan bahawa json_encode() memerlukan PHP versi 5.2 atau lebih tinggi dan pakej "php-json". Jika tidak dipasang, PHP akan cuba memasukkannya secara automatik.

Pendekatan Alternatif dengan mysqli_fetch_all()

Dalam versi PHP moden, anda boleh menggunakan fungsi mysqli_fetch_all() untuk dapatkan semula semua hasil pertanyaan dalam tatasusunan di sekali:

$result = mysqli_query($conn, "SELECT ...");
$rows = mysqli_fetch_all($result); // list arrays with values only in rows
// or
$rows = mysqli_fetch_all($result, MYSQLI_ASSOC); // assoc arrays in rows

print json_encode($rows);

Menggunakan mysqli_fetch_all() untuk Pengekodan JSON

Fungsi mysqli_fetch_all() boleh memudahkan proses pengekodan JSON dengan mencipta susunan baris untuk anda. Hanya hantar pembolehubah hasil kepada json_encode(), dan ia akan menukar data secara automatik ke dalam format JSON.

Atas ialah kandungan terperinci Bagaimana untuk Mengekodkan Keputusan Pertanyaan MySQL dengan cekap sebagai JSON dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn