Schwerwiegender Fehler: Aufruf der Mitgliedsfunktion „prepare()' für ein Nullobjekt
P粉824889650
P粉824889650 2023-10-14 15:49:30
0
2
656

Ich versuche, auf eine Liste von Kategorien und deren Inhalt zuzugreifen. Ich habe eine Klasse namens „Kategorie“. Ich bekomme immer wieder diesen Fehler. Das Seltsame ist, dass ich den gleichen Code bisher an zwei anderen Stellen ohne Probleme verwendet habe. Hier habe ich lediglich den Code wiederverwendet und alle Variablen geändert.

Fatal error: Call to a member function prepare() on null

Das ist der Code 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();
    }
}

?>

Dies ist der Code, den ich aufrufen möchte:

<?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粉824889650
P粉824889650

Antworte allen(2)
P粉373990857

在 ---- 模型中: 添加 use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class ----- extends Model 更改为class ----- extends Eloquent

P粉416996828

看起来您的 $pdo 变量尚未初始化。 我在您上传的代码中看不到您在何处初始化它。

在调用类方法之前,请确保在全局范围中创建一个新的 PDO 对象。 (由于您在 Category 类中实现方法的方式,您应该在全局范围内声明它)。

$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage