ホームページ > バックエンド開発 > PHPチュートリアル > PHP で「非オブジェクトのメンバー関数 prepare() の呼び出し」エラーが発生するのはなぜですか?

PHP で「非オブジェクトのメンバー関数 prepare() の呼び出し」エラーが発生するのはなぜですか?

DDD
リリース: 2024-11-28 11:45:14
オリジナル
640 人が閲覧しました

Why Am I Getting the

PHP: PHP でプリペアド ステートメントを使用する場合の「非オブジェクトでのメンバー関数 prepare() の呼び出し」エラーへの対処

、「非オブジェクトに対するメンバー関数 prepare() の呼び出し」エラーは、データベース接続が正しくないか、欠落していることを示します。この問題を解決するには、データベース接続が適切に作成され、関数内でアクセスできることを確認してください。

この例では、selectInfo() 関数内で $DBH 変数にアクセスできないためにエラーが発生します。これは変数のスコープによるものです。これに対処するには、いくつかのオプションがあります:

  1. グローバル キーワードを使用します:

    • $DBH 変数を先頭に追加してグローバルにしますグローバルを使用して、関数がそれにアクセスできるようにします。ただし、これはグローバル名前空間を汚染するため推奨されません。
  2. データベース接続をパラメータとして渡します:

    • $DBH 変数をパラメータとして selectInfo() 関数に渡し、関数内でその変数が利用できるようにします。これにより、変数の局所性が維持されますが、関数呼び出しを変更する必要があります。
  3. データベース接続取得関数の作成:

    • 関数を使用してデータベース接続を取得し、それを必要とする関数で使用できるようにします。これにより、接続ロジックがカプセル化され、グローバル変数の参照が回避されます。
  4. データベース ラッパー クラスの実装:

    • データベース アクセスのカプセル化クラス内で、接続を直接操作せずに操作を実行するためのインターフェイスを提供します。これにより、一元的な接続管理が可能になり、データベースのやり取りが簡素化されます。
  5. 事前に構築されたフレームワークまたはライブラリを使用します:

    • 確立されたフレームワークまたはデータベース アクセス ライブラリを利用します。これにより、データベースの接続と操作を処理するための構造化された効率的な方法が提供されます。

これらのメソッドのいずれかを使用すると、適切な接続を確立し、「非オブジェクトでのメンバー関数 prepare() の呼び出し」エラーを解決できます。これにより、準備されたステートメントが正常に実行されます。

以上がPHP で「非オブジェクトのメンバー関数 prepare() の呼び出し」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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