Saya cuba mengakses senarai kategori dan kandungannya. Saya mempunyai kelas yang dipanggil "Kategori". Saya terus mendapat ralat ini. Perkara yang aneh ialah saya telah menggunakan kod yang sama di dua tempat lain setakat ini tanpa sebarang masalah. Apa yang saya lakukan di sini ialah menggunakan semula kod dan menukar semua pembolehubah.
Fatal error: Call to a member function prepare() on null
Ini kod kelas saya:
<?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(); } } ?>
Ini adalah kod yang saya cuba hubungi:
<?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'); ?>
Dalam ---- model: Tambah
use JenssegersMongodbEloquentModel as Eloquent;
akan
class ----- extends Model
更改为class ----- extends Eloquent
Nampaknya pembolehubah
$pdo
anda belum dimulakan lagi. Saya tidak nampak di mana anda memulakannya dalam kod yang anda muat naik.Pastikan anda mencipta objek PDO baharu dalam
全局范围
sebelum memanggil kaedah kelas. (Disebabkan cara anda melaksanakan kaedah dalam kelas Kategori, anda harus mengisytiharkannya dalam skop global).