Ralat maut: Memanggil fungsi ahli prepare() pada objek nol
P粉824889650
P粉824889650 2023-10-14 15:49:30
0
2
658

Saya cuba mengakses senarai kategori dan kandungannya. Saya mempunyai kelas yang dipanggil "Kategori". Saya terus mendapat ralat ini. Perkara yang aneh ialah saya telah menggunakan kod yang sama di dua tempat lain setakat ini tanpa sebarang masalah. Apa yang saya lakukan di sini ialah menggunakan semula kod dan menukar semua pembolehubah.

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

Ini kod kelas saya:

<?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();
    }
}

?>

Ini adalah kod yang saya cuba hubungi:

<?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

membalas semua(2)
P粉373990857

Dalam ---- model: Tambah use JenssegersMongodbEloquentModel as Eloquent;

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

P粉416996828

Nampaknya pembolehubah $pdo anda belum dimulakan lagi. Saya tidak nampak di mana anda memulakannya dalam kod yang anda muat naik.

Pastikan anda mencipta objek PDO baharu dalam 全局范围sebelum memanggil kaedah kelas. (Disebabkan cara anda melaksanakan kaedah dalam kelas Kategori, anda harus mengisytiharkannya dalam skop global).

$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan