Menyelesaikan masalah "Panggil ke pertanyaan Fungsi Ahli () pada Null" Ralat
Dalam kod yang disediakan, ralat "Ralat maut: Panggilan kepada pertanyaan fungsi ahli () pada null" berlaku dalam baris 7 log masuk.php. Ralat ini menunjukkan bahawa pembolehubah $db, yang dijangkakan sebagai objek mysqli, adalah batal apabila cuba melaksanakan pertanyaan menggunakan kaedah query().
Resolusi:
Setelah memeriksa lebih dekat kod, kami mendapati bahawa permulaan pembolehubah $db diletakkan di luar fungsi user_exists(), di mana ia digunakan. Ini bermakna bahawa dalam fungsi, $db tidak ditakrifkan dan oleh itu adalah batal. Untuk menyelesaikan isu ini, kita perlu menghantar $db sebagai parameter kepada fungsi user_exists(). Berikut ialah kod yang diperbetulkan:
<code class="php">function user_exists($db, $username) { // ... }</code>
Dan dalam login.php, anda kini boleh memanggil fungsi seperti ini:
<code class="php">$result = $db->query("SELECT COUNT(UserId) FROM users WHERE UserName = '$username'");</code>
Dengan menghantar $db sebagai parameter, kami memastikan bahawa fungsi mempunyai akses kepada objek mysqli dan boleh melaksanakan pertanyaan dengan jayanya.
Atas ialah kandungan terperinci Mengapa saya mendapat ralat \'Panggilan kepada pertanyaan fungsi ahli() pada Null\' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!