Null メンバー関数エラー: データベース接続の問題
「null でのメンバー関数 prepare() の呼び出し」エラーが発生した場合、この問題は通常、クラス インスタンス内の初期化されていない変数が原因で発生します。あなたの場合、問題は $pdo 変数の初期化が欠落していることにあります。
Category クラス内では、 fetch_all() メソッドと fetch_data() メソッドの両方に PDO 接続が必要です。ただし、提供されたコードはこの接続を明示的に確立しません。このエラーを解決するには、クラス メソッドを呼び出す前に、$pdo 変数がグローバル スコープ内で初期化されていることを確認する必要があります。
<code class="php"><?php // Instantiate a new PDO object globally $pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass); class Category { public function fetch_all() { global $pdo; // Use the initialized $pdo variable to prepare the SQL query $query = $pdo->prepare("SELECT * FROM dd_cat"); $query->execute(); return $query->fetchAll(); } public function fetch_data($cat_id) { global $pdo; // Use the initialized $pdo variable to prepare the SQL query $query = $pdo->prepare("SELECT * FROM dd_cat WHERE cat_id = ?"); $query->bindValue(1, $cat_id); $query->execute(); return $query->fetch(); } } ?></code>
$pdo 変数をグローバルに初期化し、それがクラス内で使用されるようにすることで、メソッドを使用すると、適切なデータベース接続が確立され、「null でのメンバー関数 prepare() の呼び出し」エラーが解決されます。
以上がデータベース接続における「null でのメンバー関数 prepare() の呼び出し」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。