Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Saya Mendapat 'Ralat Maut: fetch_assoc() pada Bukan Objek' dalam Pertanyaan Pangkalan Data PHP Saya?

Mengapa Saya Mendapat 'Ralat Maut: fetch_assoc() pada Bukan Objek' dalam Pertanyaan Pangkalan Data PHP Saya?

Linda Hamilton
Lepaskan: 2024-12-09 00:23:14
asal
696 orang telah melayarinya

Why Am I Getting a

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
Salin selepas log masuk

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()) {...}
}
Salin selepas log masuk

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()) {...}
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan