"Ralat maut: Panggil ke pertanyaan fungsi ahli () pada null" Diterangkan
Ralat ini timbul apabila cuba mengakses pertanyaan( ) kaedah pembolehubah nol. Biasanya, ini berlaku apabila cuba melaksanakan pertanyaan pangkalan data tanpa mewujudkan sambungan pangkalan data atau apabila pembolehubah $db tidak dimulakan dengan betul.
Diagnosis:
Dalam kod yang diberikan, ralat nampaknya berasal dari baris 7:
<code class="php">$result = $db->query("SELECT COUNT(UserId) FROM users WHERE UserName = '$username'");</code>
Walau bagaimanapun, baris 3 kod memulakan pembolehubah $db:
<code class="php">$db = new mysqli('127.0.0.1', 'root', '', 'wisconsindairyfarmers');</code>
Penyelesaian:
Untuk menyelesaikan isu ini, pastikan pembolehubah $db dimulakan dan sah sebelum menggunakannya dalam kaedah query(). Dalam kes ini, nampaknya pembolehubah $db ditakrifkan di luar fungsi user_exists(). Untuk mengaksesnya dalam fungsi, hantarkannya sebagai parameter:
<code class="php">function user_exists($db, $username) { // ... }</code>
Kemudian, panggil fungsi seperti ini:
<code class="php">user_exists($db, $username);</code>
Atas ialah kandungan terperinci Mengapa saya mendapat ralat \'Fatal error: Call to a member function query() on null\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!