Ich versuche, auf eine Liste von Kategorien und deren Inhalt zuzugreifen. Ich habe eine Klasse namens Kategorien. Ich bekomme diesen Fehler immer wieder. Das Seltsame ist, dass ich denselben genauen Code bisher an zwei anderen Orten ohne Probleme verwendet habe. Alles, was ich hier getan habe, war, den Code wiederzuverwenden und alle Variablen zu ändern.Schwerwiegender Fehler: Aufruf einer Memberfunktion prepare() auf Null
Fatal error: Call to a member function prepare() on null
Hier ist der Code zu meiner Klasse:
<?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();
}
}
?>
Und hier ist der Code, den ich anrufen versuche:
<?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');
?>
'var_dump ($ pdo)', '$ pdo' ist kein Objekt (noch nicht initialisiert), wenn' prepare' aufgerufen wird. – Jigar
@JandenHale: Haben Sie vorher eine (globale) Variable mit dem Namen '$ pdo' initialisiert? –
Es ist global in der Klasse, zumindest dachte ich es war. – ddonche