ホームページ  >  記事  >  バックエンド開発  >  phpでのpdoエラー処理方法を詳しく解説

phpでのpdoエラー処理方法を詳しく解説

WBOY
WBOYオリジナル
2016-07-25 08:54:38991ブラウズ
  1. try {
  2. $db = new pdo('mysql:host=localhost;dbname=test', $user, $pass);
  3. $db = null; e) {
  4. print "error: " . $e->getmessage() . "
    "
  5. ?>
  6. ここで php を使用します5. オブジェクト指向の例外処理機能。例外が発生した場合は、pdoException を呼び出して例外クラスを初期化します。
pdoException例外クラスの属性構造:

class pdoException extendsException

{
public $errorinfo = null; // エラーメッセージ、pdo::errorinfo() または pdostatement::errorinfo() を呼び出して
protected $ にアクセスできますmessage ; // 例外情報、Exception::getmessage() を使用して
    にアクセスできます $code; // SQL ステータス エラー コード、Exception::getcode() を使用して
  1. にアクセスできます
  2. ?>
  3. コードをコピーします
  4. この例外処理クラスは、PHP 5 の組み込み例外処理クラスと統合されています。 PHP 5 組み込み例外処理クラス構造:
  5. classException

    {

    // プロパティ
    protected $message = 'unknown 例外' // 例外メッセージ
    protected $code = 0; // ユーザー定義の例外コード
      protected $; file; // 例外が発生したファイル名
    1. protected $line; // 例外が発生したコード行番号
    2. // メソッド
    3. last function getmessage() // 例外情報を返す
    4. last function getcode(); / 例外コードを返す
    5. final function getfile(); // 例外が発生したファイル名を返す
    6. final function getline(); // 例外が発生したコード行番号を返す
    7. final function gettrace(); ) array
    8. final function gettraceasstring() ; // 文字列にフォーマットされた gettrace() 情報
    9. }
    10. ?>
    11. コードをコピー
    12. これに対応して、getfile() と getline() は適切に実行できます。デバッグを容易にするためにコード内で呼び出されます。 プロセス指向のアプローチを使用する コード:
    13. $db = new pdo('mysql:host=localhost;dbname=test', $user, $pass); $rs = $db->query("select aa, bb,cc from foo"); if ($db->e​​rrorcode() != '00000'){

      print_r($db->e​​rrorinfo());

      exit;
      }
      $arr = $rs ->fetchall();
        $db = null;>
      1. pdo オブジェクトと pdostatement メソッドがある (存在しない場合)エラー、errorcode() は 00000 を返します。それ以外の場合は、エラー コードが返されます。 errorinfo() は、PHP で定義されたエラー コードと MySQL のエラー コードおよびエラー メッセージを含む配列を返します。配列の構造は次のとおりです。 配列 ( [0] => 42秒22 [1] => 1054 [2] => 「フィールドリスト」に不明な列「aaa」があります ) 各クエリの実行後の errorcode() の結果は最新であるため、エラー メッセージの表示を自分で簡単に制御できます。 PDO を使用した PHP およびデータベースの開発中に再びエラーが発生した場合はどうすればよいですか?上記のように扱います。
      2. 11.3.4 pdoのエラー処理
      3. pdo は、プログラム内のエラー情報を取得する 2 つのメソッドを提供します。1 つは errorcode() メソッド、もう 1 つは errorinfo() メソッドです。
      4. 1. errorcode() メソッド
      5. errorcode() メソッドは、データベース ハンドルの操作時に発生するエラー コードを取得するために使用されます。このメソッドの構文形式は次のとおりです。
      6. 01 string errorcode (void) errorcode() メソッドの戻り値は sqlstate で、5 つの数字と文字で構成されるコードです。
      errorcode() メソッドの使用例:

      $dsn = 'mysql:dbname=shop;host=localhost';

      $user_name = 'root'

      $user_psw = 'root'; dsn, $user_name, $user_psw);

      $pdo->exec("update mytable set age=28 where id=1 ");//テーブル mytable が存在しません

      echo "エラーコード: ".$pdo- > エラーコード();

      コードをコピーします

      エラーコード出力は以下のとおりです。

      php pdo错误处理

      2. errorinfo() メソッド

      errorinfo() メソッドは、データベース ハンドルの操作時に発生するエラー情報を取得するために使用されます。このメソッドの構文形式は次のとおりです。

      01 array errorinfo (void) errorinfo() メソッドの戻り値は配列であり、関連するエラー情報が含まれます。

      errorinfo() メソッドを使用します。

      $dsn = 'mysql:dbname=shop;host=localhost';
    14. $user_name = 'root'
    15. $user_psw = 'root'; dsn, $user_name, $user_psw);
    16. $pdo->exec("update mytable set age=28 where id=1 ");//テーブル mytable が存在しません
    17. echo "errorinfo is: "; $pdo ->errorinfo());
    18. ?>
    19. 以下に示すように、コード
    20. によって出力されたエラー メッセージをコピーします。

    php pdo错误处理

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