Rumah >pangkalan data >tutorial mysql >Mengapa saya mendapat ralat \'Panggilan kepada pertanyaan fungsi ahli() pada Null\' dalam PHP?

Mengapa saya mendapat ralat \'Panggilan kepada pertanyaan fungsi ahli() pada Null\' dalam PHP?

Patricia Arquette
Patricia Arquetteasal
2024-10-29 05:16:311024semak imbas

Why am I getting the

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!

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