ホームページ >バックエンド開発 >PHPチュートリアル >PHP で PDO Prepare() クエリ エラーを取得するにはどうすればよいですか?

PHP で PDO Prepare() クエリ エラーを取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-06 22:40:12227ブラウズ

How Can I Retrieve PDO Prepare() Query Errors in PHP?

PDO PHP の prepare() からクエリ エラーを取得する

PDO PHP を使用してクエリを準備する場合、潜在的なエラーをチェックすることが重要ですエラー。デフォルトでは、PDO はクエリの準備中に発生したエラーに対して例外をスローしません。エラー処理を有効にするには、PDO::ATTR_ERRMODE 属性を利用できます。

解決策

  • PDO::ATTR_ERRMODE を PDO::ERRMODE_EXCEPTION に設定します。 : この属性を設定すると、prepare() は次の場合に例外をスローします。エラーが発生します。
  • PDO::ATTR_EMULATE_PREPARES: を無効にする MySQL サーバーが prepare() 中にクエリを処理できるようにするには、この属性を無効にします。エミュレーションにより、クエリが実行されるまでサーバーがエラーを検出できないことがあります。

例:

$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->prepare('INSERT INTO DoesNotExist (x) VALUES (?)');

指定されたクエリに無効な構文が含まれている場合、PDO は以下の情報は例外です:

SQLSTATE[42S02]: Base table or view not found: 
1146 Table 'test.doesnotexist' doesn't exist

以上がPHP で PDO Prepare() クエリ エラーを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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