Ralat Maut: fetch_assoc() pada Bukan Objek
Apabila melaksanakan pertanyaan pangkalan data, anda mungkin menghadapi mesej ralat berikut:
Fatal error: Call to a member function fetch_assoc() on a non-object
Ralat ini berlaku apabila kaedah fetch_assoc() dipanggil pada bukan objek, biasanya objek mysqli_result.
Analisis Masalah:
Dalam coretan kod yang disediakan, anda mungkin telah menulis fungsi seperti berikut:
function get_recent_highs(...){ $result = $this->database->query($query); while($row = $result->fetch_assoc()) {...} }
Jika $result bukan objek, panggilan fetch_assoc() akan gagal. Ini boleh berlaku jika terdapat ralat dalam pertanyaan SQL, yang menyebabkan query() mengembalikan false dan bukannya objek hasil.
Penyelesaian:
Untuk menyelesaikan ralat, semak nilai pulangan pertanyaan (). Jika ia mengembalikan palsu, buang pengecualian atau kendalikan ralat dengan sewajarnya. Contohnya:
function get_recent_highs(...){ $result = $this->database->query($query); if (!$result) { throw new Exception("Database Error"); } while($row = $result->fetch_assoc()) {...} }
Dengan menangkap ralat dalam query(), anda boleh memastikan fetch_assoc() hanya dipanggil pada objek hasil yang sah, menghalang ralat bukan objek.
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Ralat Maut: fetch_assoc() pada Bukan Objek' dalam Pertanyaan Pangkalan Data PHP Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!