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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-19 19:36:03742ブラウズ

Why Am I Getting

非オブジェクトでのメンバー関数 Prepare への PDO 呼び出し: 原因と解決策

PDO オブジェクトを使用すると、「非オブジェクトのメンバー関数 prepare() を呼び出します。」というエラーが発生する可能性があります。このエラーは、$pdo オブジェクトが関数内で適切に初期化されていないことが問題の原因であることを示しています。

提供されたコード スニペットでは、repetirDados() 関数は $pdo オブジェクトを宣言していないか、パラメーターとして渡していません。 。このエラーを解決するには、次のいずれかを行うことができます:

  • PDO オブジェクトをパラメータとして渡す:
    $pdo オブジェクトを引数として含むように関数定義を変更し、
  • PDO オブジェクトをグローバルに宣言します: (推奨されません)
    グローバル $pdo を追加することで、グローバル名前空間で $pdo オブジェクトを宣言し、関数にアクセスできるようにすることができます。関数の最初に。ただし、このアプローチは、他のコードが同じグローバル変数にアクセスしている場合に競合が発生する可能性があるため、推奨されません。

MySQL 関数と同等の PDO

また、MySQL 関数 mysql_num_rows に相当する PDO についてもお問い合わせいただきました。 PDO は、同じ目的を果たす rowCount() と呼ばれる代替メソッドを提供します。クエリの実行後に結果セット内の影響を受けた行の数を返します。

コードでは、$results == 0 の代わりに $stmt->rowCount() を使用して、影響を受けた行があるかどうかを確認できます。クエリによって返されました。

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

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