首頁  >  問答  >  主體

致命錯誤:對空物件呼叫成員函數prepare()

我正在嘗試存取類別及其內容的清單。我有一個名為“類別”的課程。我不斷收到此錯誤。奇怪的是,到目前為止我已經在其他兩個地方使用了相同的程式碼,沒有任何問題。我在這裡所做的只是重用程式碼並更改所有變數。

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

這是我的類別的程式碼:

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

?>

這是我嘗試呼叫的程式碼:

<?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粉824889650394 天前643

全部回覆(2)我來回復

  • P粉373990857

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

    在 ---- 模型中: 新增 use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

    #將class ----- extends Model 改為class ----- extends Eloquent

    回覆
    0
  • P粉416996828

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

    看起來您的 $pdo 變數尚未初始化。 我在您上傳的程式碼中看不到您在何處初始化它。

    在呼叫類別方法之前,請確保在全域範圍中建立一個新的 PDO 物件。 (由於您在 Category 類別中實作方法的方式,您應該在全域範圍內聲明它)。

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

    回覆
    0
  • 取消回覆