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

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

Mary-Kate Olsen
リリース: 2024-10-30 16:49:03
オリジナル
173 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート