ホームページ  >  記事  >  バックエンド開発  >  カテゴリを取得しようとすると「致命的エラー: null でのメンバー関数 prepare() の呼び出し」が発生するのはなぜですか?

カテゴリを取得しようとすると「致命的エラー: null でのメンバー関数 prepare() の呼び出し」が発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 16:49:03133ブラウズ

Why am I getting a

致命的なエラー: Null メンバー関数への謎の呼び出し

クエリ:

I'次のコードを使用してカテゴリのリストを取得しようとすると、「致命的エラー: null のメンバー関数 prepare() の呼び出し」という不可解なエラーが発生しました:

<code class="php">$category = new Category;
$categories = $category->fetch_all();</code>

Context:

Category クラスには次のメソッドがあります:

<code class="php">class Category {
    public function fetch_all() {
        global $pdo;
        $query = $pdo->prepare("SELECT * FROM dd_cat");
        ...
    }

    public function fetch_data($cat_id) {
        global $pdo;
        $query = $pdo->prepare("SELECT * FROM dd_cat WHERE cat_id = ?");
        ...
    }
}</code>

このコードはプロジェクトの他の 2 つのセクションで正常に使用できましたが、ここでは問題が発生しています。

応答:

この問題は、$pdo 変数が null であるために発生します。クラスメソッドを呼び出す前に、PDO オブジェクトで初期化する必要があります。これは、Category クラスでのメソッドの実装方法が原因です。

エラーを修正するには、次のコードをスクリプトに追加します。

<code class="php">$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);</code>

このコードが配置されていることを確認してください。グローバル スコープ内で、Category クラスのメソッドを呼び出す前に。

以上がカテゴリを取得しようとすると「致命的エラー: null でのメンバー関数 prepare() の呼び出し」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。