Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan Ralat \'Panggil ke fungsi ahli prepare() on null\' dalam Kesambungan Pangkalan Data?

Bagaimana untuk Menyelesaikan Ralat \'Panggil ke fungsi ahli prepare() on null\' dalam Kesambungan Pangkalan Data?

Linda Hamilton
Linda Hamiltonasal
2024-11-01 13:44:29935semak imbas

How to Resolve the

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!

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