Maison  >  Questions et réponses  >  le corps du texte

Erreur fatale : appel de la fonction membre prepare() sur un objet nul

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');
?>


P粉824889650P粉824889650344 Il y a quelques jours605

répondre à tous(2)je répondrai

  • P粉373990857

    P粉3739908572023-10-15 12:07:07

    Dans ---- modèle : Ajouter use JenssegersMongodbEloquentModel as Eloquent;

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

    répondre
    0
  • P粉416996828

    P粉4169968282023-10-15 09:50:08

    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).

    $pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

    répondre
    0
  • Annulerrépondre