空成員函數錯誤:資料庫連線問題
遇到「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中文網其他相關文章!