J'essaie d'accéder à une liste de catégories et de leur contenu. J'ai une classe appelée "Catégorie". Je continue à recevoir cette erreur. Ce qui est étrange, c'est que j'ai utilisé jusqu'à présent le même code à deux autres endroits sans aucun problème. Tout ce que j'ai fait ici, c'est de réutiliser le code et de modifier toutes les variables.
Fatal error: Call to a member function prepare() on null
Voici le code de ma classe :
<?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(); } } ?>
Voici le code que j'essaie d'appeler :
<?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'); ?>
Dans ---- modèle : Ajouter
use JenssegersMongodbEloquentModel as Eloquent;
volonté
class ----- extends Model
更改为class ----- extends Eloquent
On dirait que votre variable
$pdo
n'a pas encore été initialisée. Je ne vois pas où vous l'initialisez dans le code que vous avez téléchargé.Assurez-vous de créer un nouvel objet PDO dans
全局范围
avant d'appeler la méthode de classe. (En raison de la façon dont vous avez implémenté la méthode dans la classe Category, vous devez la déclarer dans la portée globale).