Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membetulkan Ralat 'Mencuba Mendapatkan Harta Bukan Objek' dalam PHP?

Bagaimana untuk Membetulkan Ralat 'Mencuba Mendapatkan Harta Bukan Objek' dalam PHP?

DDD
DDDasal
2024-11-08 15:44:02952semak imbas

How to Fix the

Menyelesaikan Ralat "Mencuba Mendapatkan Harta Bukan Objek" dalam PHP

Apabila bekerja dengan PHP, anda mungkin menghadapi ralat "Mencuba untuk mendapatkan harta bukan benda." Ralat ini biasanya berlaku apabila cuba mengakses sifat objek yang belum dimulakan dengan betul atau batal.

Dalam kes kod yang diberikan, isunya terletak pada pengambilan data menu sisi daripada pangkalan data. Fungsi mysql_fetch_object() mengembalikan satu objek, bukan tatasusunan objek. Akibatnya, lelaran melalui pembolehubah $sidemenus dalam halaman paparan akan mencetuskan ralat.

Untuk menyelesaikan isu ini, ubah suai kod pada halaman kawalan kepada:

$results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con);

$sidemenus = array();
while ($sidemenu = mysql_fetch_object($results)) {
    $sidemenus[] = $sidemenu;
}

Kod ini menukar objek tunggal yang dikembalikan oleh mysql_fetch_object() ke dalam tatasusunan objek. Halaman paparan kemudiannya boleh berulang melalui tatasusunan tanpa menghadapi ralat sifat.

Alternatif lain ialah menggunakan PDO, yang menyediakan antara muka yang lebih moden dan selamat untuk interaksi pangkalan data. Kaedah PDOStatement::fetchAll(PDO::FETCH_OBJ) boleh digunakan untuk mengambil tatasusunan objek daripada pertanyaan pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Mencuba Mendapatkan Harta Bukan Objek' 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