Erreur fatale : appel de la fonction membre prepare() sur un objet nul
P粉824889650
P粉824889650 2023-10-14 15:49:30
0
2
657

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

répondre à tous(2)
P粉373990857

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

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

P粉416996828

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);
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal