Membetulkan Ralat "Mencuba Mengakses Array Offset pada Nilai Jenis Null"
Apabila mendapatkan semula data daripada pangkalan data, adalah penting untuk mengendalikan senario di mana tiada rekod sepadan wujud. Ralat "Cuba mengakses tatasusunan mengimbangi pada nilai jenis null" timbul apabila pangkalan data gagal mencari baris yang sepadan untuk pertanyaan tertentu.
Mengapa Ralat Ini Berlaku?
Fungsi pengambilan pangkalan data, seperti mysqli_fetch_array, mengembalikan sama ada nilai nol atau tatasusunan kosong jika tiada rekod yang sepadan. Ini boleh berlaku apabila pertanyaan tidak betul, data tidak wujud atau set hasil telah habis.
Penyelesaian 1: Menyemak Kebenaran dan Kewujudan Utama
Untuk menyelesaikan isu ini, anda boleh mengesahkan kebenaran nilai yang dikembalikan dan menyemak sama ada kunci khusus yang anda ingin akses wujud. Berikut ialah contoh:
$monday_lectures = "SELECT * from lectures where lecture_time = '11am to 1pm' and lecture_day = 'firday'"; $result_11to1 = mysqli_query($con, $monday_lectures); $m11to1 = mysqli_fetch_array($result_11to1); if ($m11to1 && $m11to1["lecture_day"] != '') { echo "<td>".$m11to1["lecture_name"]."</td>"; } else { echo "<td> no class</td>"; }
Dalam contoh ini, kami mula-mula menyemak sama ada $m11to1 bukan batal dan kemudian mengesahkan sama ada kekunci "lecture_day" wujud dan bukan rentetan kosong.
Penyelesaian 2: Nilai Lalai dalam PDO
Jika anda bekerja dengan PDO, anda boleh menentukan nilai lalai untuk keputusan sekiranya tiada baris yang sepadan ditemui:
$monday_lectures = $pdo->prepare("SELECT * from lectures where lecture_time = '11am to 1pm' and lecture_day = 'firday'"); $monday_lectures->execute(); $m11to1 = $monday_lectures->fetch(); $lecture = $m11to1["lecture_day"] ?? null;
Ini memastikan bahawa $kuliah tidak akan batal, walaupun tiada rekod yang sepadan ditemui.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Cuba Mengakses Array Offset pada Nilai Jenis Null' Apabila Menyoal Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!