Mengenal pasti Isu MySQL Menghasilkan Keputusan Baris Tunggal
Apabila melaksanakan pertanyaan SQL menggunakan PHP, kadangkala anda mungkin menghadapi senario di mana MySQL hanya mengembalikan satu baris, walaupun pangkalan data mengandungi berbilang rekod padanan. Ini boleh membawa kepada hasil yang tidak dijangka dan penyelesaian masalah boleh mencabar.
Dalam contoh yang diberikan, skrip PHP sedang menanyakan jadual bernama fastsearch untuk baris yang lajur tag sepadan dengan nilai tertentu. Walau bagaimanapun, kod tersebut menggunakan fungsi mysql_fetch_assoc(), yang mengambil hanya baris pertama set hasil, yang membawa kepada paparan hanya satu rekod.
Menyelesaikan Isu Pengambilan Satu Baris
Untuk membetulkan isu ini dan mengambil semua baris yang sepadan daripada pangkalan data, kami boleh mengubah suai PHP kod seperti berikut:
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); while ($row = mysql_fetch_assoc($query)) { print_r($row); }
Di sini, kami menggunakan gelung sementara untuk mengulangi set hasil. Fungsi mysql_fetch_assoc() dipanggil dalam gelung, dan ia mengembalikan baris seterusnya setiap kali ia dilaksanakan. Gelung diteruskan sehingga tiada lagi baris untuk diambil, memaparkan semua rekod yang sepadan.
Penyelesaian menangani dua isu biasa:
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL Saya Hanya Mengembalikan Satu Baris dalam PHP, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!