Rumah > Soal Jawab > teks badan
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'); ?>
P粉3739908572023-10-15 12:07:07
Dalam ---- model:
Tambah use JenssegersMongodbEloquentModel as Eloquent;
akanclass ----- extends Model
更改为class ----- extends Eloquent
P粉4169968282023-10-15 09:50:08
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).
$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);