Ralat Fungsi Ahli Null: Masalah dalam Kesambungan Pangkalan Data
Apabila menghadapi ralat "Panggilan kepada fungsi ahli sediakan() pada null" , isu ini biasanya berpunca daripada pembolehubah yang tidak dimulakan dalam contoh kelas. Dalam kes anda, masalahnya terletak pada permulaan pembolehubah $pdo yang hilang.
Dalam kelas Kategori anda, kaedah fetch_all() dan fetch_data() kedua-duanya memerlukan sambungan PDO. Walau bagaimanapun, kod yang diberikan tidak mewujudkan sambungan ini secara eksplisit. Untuk menyelesaikan ralat ini, anda perlu memastikan bahawa pembolehubah $pdo dimulakan dalam skop global sebelum memanggil kaedah kelas.
<code class="php"><?php // Instantiate a new PDO object globally $pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass); class Category { public function fetch_all() { global $pdo; // Use the initialized $pdo variable to prepare the SQL query $query = $pdo->prepare("SELECT * FROM dd_cat"); $query->execute(); return $query->fetchAll(); } public function fetch_data($cat_id) { global $pdo; // Use the initialized $pdo variable to prepare the SQL query $query = $pdo->prepare("SELECT * FROM dd_cat WHERE cat_id = ?"); $query->bindValue(1, $cat_id); $query->execute(); return $query->fetch(); } } ?></code>
Dengan memulakan pembolehubah $pdo secara global dan memastikan ia digunakan dalam kelas kaedah, anda akan mewujudkan sambungan pangkalan data yang betul dan menyelesaikan ralat "Panggil ke fungsi ahli menyediakan() pada nol".
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Panggil ke fungsi ahli prepare() on null\' dalam Kesambungan Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!