首頁 >後端開發 >php教程 >如何解決資料庫連線中的「呼叫成員函數prepare() on null」錯誤?

如何解決資料庫連線中的「呼叫成員函數prepare() on null」錯誤?

Linda Hamilton
Linda Hamilton原創
2024-11-01 13:44:29937瀏覽

How to Resolve the

空成員函數錯誤:資料庫連線問題

遇到「Call to a member function prepare() on null」錯誤時,問題通常源自於類別實例中未初始化的變數。在您的情況下,問題在於 $pdo 變數缺少初始化。

在您的 Category 類別中, fetch_all() 和 fetch_data() 方法都需要 PDO 連線。但是,提供的程式碼沒有明確建立此連接。要解決此錯誤,您需要確保在呼叫類別方法之前在全域範圍內初始化 $pdo 變數。

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

透過全域初始化 $pdo 變數並確保在類別內使用它方法,您將建立正確的資料庫連接並解決「Call to a member function prepare() on null」錯誤。

以上是如何解決資料庫連線中的「呼叫成員函數prepare() on null」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn