我正在嘗試存取類別及其內容的清單。我有一個名為“類別”的課程。我不斷收到此錯誤。奇怪的是,到目前為止我已經在其他兩個地方使用了相同的程式碼,沒有任何問題。我在這裡所做的只是重用程式碼並更改所有變數。
Fatal error: Call to a member function prepare() on null
這是我的類別的程式碼:
<?php class Category { public function fetch_all() { global $pdo; $query = $pdo->prepare("SELECT * FROM dd_cat"); $query->execute(); return $query->fetchAll(); } public function fetch_data($cat_id) { global $pdo; $query = $pdo->prepare("SELECT * FROM dd_cat WHERE cat_id = ?"); $query->bindValue(1, $cat_id); $query->execute(); return $query->fetch(); } } ?>
這是我嘗試呼叫的程式碼:
<?php session_start(); //Add session_start to top of each page// require_once('includes/config.php'); require_once('includes/header.php'); include_once('includes/category.php'); ?> <link rel="stylesheet" href="css/dd.css"> <div id="menu"> <a class="item" href="drop_index.php">Home</a> - <a class="item" href="create_topic.php">Create a topic</a> - <a class="item" href="create_cat.php">Create a category</a> <div id="userbar"> <?php if( $user->is_logged_in() ) { echo 'Hello ' . $_SESSION['user_name'] . '. Not you? <a href="logout.php">Sign out</a>'; } else { echo '<a href="login.php">Sign in</a> or <a href="index.php">create an account</a>.'; } ?> </div> </div> <?php $category = new Category; $categories = $category->fetch_all(); ?> <div id ="wrapper"> <h1>Categories</h1> <section> <ul> <?php foreach ($categories as $category) { ?> <li><a href="category.php?id=<?php echo $category['cat_id']; ?>"> <?php echo $category['cat_title']; ?></a> </li> <?php } ?> </ul> </section> </div> <?php require_once('includes/footer.php'); ?>
在 ---- 模型中: 新增
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
#將
class ----- extends Model
改為class ----- extends Eloquent
看起來您的
$pdo
變數尚未初始化。 我在您上傳的程式碼中看不到您在何處初始化它。在呼叫類別方法之前,請確保在
全域範圍
中建立一個新的 PDO 物件。 (由於您在 Category 類別中實作方法的方式,您應該在全域範圍內聲明它)。