致命的なエラー: 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 サイトの他の関連記事を参照してください。