Dalam pembangunan PHP, pangkalan data MySQL sering digunakan. Tetapi kadangkala mesej ralat berikut muncul apabila menggunakan mysql_fetch_assoc(): Amaran PHP: mysql_fetch_assoc() menjangkakan parameter 1 sebagai sumber.
Ralat ini sangat biasa, tetapi ia mungkin menyebabkan masalah yang serius untuk pemula tidak jelas apa yang menyebabkan ralat ini dan cara membetulkannya.
Artikel ini akan memperkenalkan secara terperinci penyelesaian kepada Amaran PHP: mysql_fetch_assoc() menjangkakan parameter 1 sebagai sumber.
1. Punca ralat
Mari kita jelaskan dahulu mengapa ralat ini berlaku. Ralat ini disebabkan oleh parameter fungsi mysql_fetch_assoc() yang salah.
Fungsi mysql_fetch_assoc() adalah untuk mengeluarkan data dalam set hasil dan menyimpannya ke dalam tatasusunan bersekutu. Tetapi jika parameter fungsi tidak betul, contohnya, parameter itu bukan sumber pautan yang sah, ralat ini akan dibuang.
2. Penyelesaian
Cara untuk menyelesaikan ralat ini sebenarnya sangat mudah. Anda hanya perlu menyemak sama ada nilai pulangan fungsi mysql_query() ialah sumber pautan yang sah.
Berikut ialah contoh kod ringkas:
$con = mysql_connect("localhost","username","password"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("database", $con); $result = mysql_query("SELECT * FROM table"); if (!$result) { die('Invalid query: ' . mysql_error()); } while($row = mysql_fetch_assoc($result)) { echo $row['column1'] . " " . $row['column2']; } mysql_close($con);
Dalam kod di atas, mula-mula gunakan fungsi mysql_connect() untuk menyambung ke pangkalan data, dan jika sambungan berjaya, pilih pangkalan data. Kemudian gunakan fungsi mysql_query() untuk melaksanakan pernyataan pertanyaan dan mengembalikan set hasil.
Kemudian gunakan pernyataan if untuk menyemak sama ada nilai pulangan mysql_query() adalah palsu. Jika ia palsu, ini bermakna pelaksanaan pertanyaan gagal, anda boleh mencetak mesej ralat dan keluar dari program.
Jika pertanyaan berjaya dilaksanakan, gunakan fungsi mysql_fetch_assoc() untuk mengambil data dalam set hasil dan menyimpannya dalam tatasusunan bersekutu, dan akhirnya tutup sambungan mysql.
3. Nota lain
Selain menyemak nilai pulangan mysql_query(), terdapat beberapa nota lain.
Pelanjutan mysql telah ditamatkan secara rasmi Walaupun ia masih boleh digunakan, ia mungkin akan dihapuskan sepenuhnya dalam versi PHP akan datang. Padam, jadi disyorkan untuk menggunakan sambungan mysqli atau PDO untuk mengendalikan pangkalan data MySQL.
Apabila ralat berlaku dalam pernyataan pertanyaan, mungkin juga terdapat masalah dengan hasil yang dikembalikan oleh fungsi mysql_query() , menyebabkan fungsi mysql_fetch_assoc() tidak betul. Oleh itu, anda mesti memberi perhatian kepada format penulisan pernyataan SQL.
Jika fungsi mysql_query() tidak menanyakan sebarang data semasa melaksanakan pernyataan pertanyaan, ia juga akan mengembalikan nilai palsu, yang akan mencetuskan ralat fungsi mysql_fetch_assoc(). Pada masa ini, anda boleh menyemak sama ada pengguna pangkalan data telah membaca kebenaran dalam pangkalan data yang disambungkan dan isu lain.
4. Ringkasan
Di atas ialah penyelesaian kepada Amaran PHP: mysql_fetch_assoc() menjangkakan parameter 1 sebagai sumber. Ingat, hanya hantaran parameter yang salah boleh menyebabkan fungsi tidak berfungsi dengan betul, jadi menyemak sama ada nilai pulangan fungsi mysql_query() ialah sumber pautan yang sah adalah kunci untuk menyelesaikan masalah ini. Pada masa yang sama, ia juga sangat penting untuk menggunakan sambungan mysqli atau PDO dan memberi perhatian kepada format penulisan pernyataan SQL dan kebenaran pangkalan data.
Atas ialah kandungan terperinci Amaran PHP: mysql_fetch_assoc() menjangkakan parameter 1 sebagai penyelesaian sumber. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!