ホームページ >データベース >mysql チュートリアル >PHP で PDO の `prepare()` メソッドから MySQL エラーを取得する方法

PHP で PDO の `prepare()` メソッドから MySQL エラーを取得する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-21 06:51:09516ブラウズ

How to Retrieve MySQL Errors from PDO's `prepare()` Method in PHP?

PHP で PDO prepare() からクエリ エラーを取得する方法?

問題:

次の PHP コードを考えてみましょう。 :

$st = $db->prepare("SELECT * FROM c6ode");

クエリの目的の MySQL エラーを取得するにはどうすればよいですか?このインスタンスは?

解決策:

prepare() からエラー情報を取得するには、次の手順を実行する必要があります:

  1. エラー モード属性 PDO を設定する::ATTR_ERRMODE から PDO::ERRMODE_EXCEPTION まで。
  2. PDO::ATTR_EMULATE_PREPARES 機能。MySQL サーバーがステートメントをすぐに処理するのを防ぎます。

例を次に示します。

<?php
$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 (?)');

このコードは例外をスローし、次のメッセージを出力します。エラーメッセージ:

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

以上がPHP で PDO の `prepare()` メソッドから MySQL エラーを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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