Rumah  >  Artikel  >  pangkalan data  >  Mengapa saya mendapat ralat \"Fatal error: Call to a member function query() on null\"?

Mengapa saya mendapat ralat \"Fatal error: Call to a member function query() on null\"?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 12:32:02685semak imbas

Why am I getting the error

"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!

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