> 백엔드 개발 > PHP 튜토리얼 > PHP의 pdo 오류 처리 방법에 대한 자세한 설명

PHP의 pdo 오류 처리 방법에 대한 자세한 설명

WBOY
풀어 주다: 2016-07-25 08:54:38
원래의
1038명이 탐색했습니다.
  1. try {
  2.  $db = new pdo('mysql:host=localhost;dbname=test', $user, $pass );
  3.  $db = null;
  4. } catch (pdoException $e) {
  5. "error: " . "
    "; > die();
  6. }
  7. ?>
코드 복사
여기에서는 PHP 5의 객체 지향 예외 처리 기능을 사용합니다. 예외가 있는 경우, pdoException을 호출하여 예외 클래스를 초기화하십시오.

pdoException 예외 클래스의 속성 구조:

  1. class pdoException 확장 예외
  2. {
  3. public $errorinfo = null; // 오류 메시지, 호출 가능 pdo ::errorinfo() 또는 pdostatement::errorinfo()
  4. protected $message; // 예외 정보,
  5. protected $code에 액세스하려면 예외::getmessage()를 시도할 수 있습니다. 코드,
  6. }
  7. ?>
코드 복사
에 액세스하려면 예외::getcode()를 사용할 수 있습니다. 이 예외 처리 클래스는 PHP 5에는 예외 처리 클래스가 내장되어 있습니다. PHP 5 내장 예외 처리 클래스 구조:

  1. 클래스 예외
  2. {
  3.  // 속성
  4.  protected $message = '알 수 없는 예외'; / 예외 정보
  5. protected $code = 0; // 사용자 정의 예외 코드
  6. protected $file; // 예외가 발생한 파일 이름
  7. protected $line;
  8. // 메소드
  9. final function getmessage(); // 예외 정보 반환
  10. final function getcode(); // 예외 코드 반환
  11. final function getfile(); 예외가 발생했습니다.
  12. final function getline(); // 예외가 발생한 코드 줄 번호를 반환합니다.
  13. final function gettrace(); // backtrace() array
  14. final function gettraceasstring(); gettrace() 정보를 문자열로
  15. }
  16. ?>
코드 복사
따라서 getfile() 및 getline(은 다음에서 적절하게 호출될 수 있습니다. 코드)를 사용하여 오류를 찾고 디버깅을 더욱 편리하게 만듭니다. 프로세스 중심 접근 방식 사용 암호:

  1. $db = new pdo('mysql:host=localhost;dbname=test', $user, $pass)
  2. $rs = $db->query("foo에서 aa,bb,cc 선택")
  3. if ($db->errorcode() != '00000'){
  4. print_r($ db->errorinfo());
  5. 종료;
  6. }
  7. $arr = $rs->fetchall()
  8. print_r($arr);
  9. ?>
코드 복사
pdo 및 pdostatement 객체에는 errorcode() 및 errorinfo() 메서드가 있습니다. 오류가 없으면 errorcode()가 반환됩니다. 예: 00000, 그렇지 않으면 일부 오류 코드가 반환됩니다. errorinfo()는 PHP에서 정의한 오류 코드와 MySQL의 오류 코드 및 오류 메시지를 포함하는 배열을 반환합니다. 정렬 ( [0] => 42s22 [1] => 1054 [2] => '필드 목록'의 알 수 없는 열 'aaa' ) 각 쿼리가 실행된 후 errorcode()의 결과가 최신이므로 오류 메시지 표시를 직접 쉽게 제어할 수 있습니다. pdo를 사용하여 PHP 및 데이터베이스를 개발하는 동안 다시 오류가 발생하면 어떻게 해야 합니까? 위와 같이 처리합니다.

11.3.4 pdo 오류 처리

pdo는 프로그램에서 오류 정보를 얻는 두 가지 방법을 제공합니다. 하나는 errorcode() 메서드이고 다른 하나는 errorinfo() 메서드입니다.

1. 오류코드() 메소드

errorcode() 메소드는 데이터베이스 핸들을 운영할 때 발생하는 오류 코드를 얻는 데 사용됩니다. 이 메소드의 구문 형식은 다음과 같습니다.

01 문자열 errorcode(void) errorcode() 메소드의 반환 값은 sqlstate입니다. sqlstate는 5개의 숫자와 문자로 구성된 코드입니다.

errorcode() 메소드 사용 예:

$dsn = 'mysql:dbname=shop;host=localhost';
  • $user_name = 'root';
  • $user_psw = 'root';
  • $pdo = new pdo($dsn, $user_name, $user_psw)
  • $pdo->exec("update mytable set age=28 where id=1 ");//mytable 테이블이 존재하지 않습니다
  • echo "errorcode is: ".$pdo->errorcode();
  • ?>
  • 코드 복사
  • 오류 코드 출력은 아래와 같습니다.

    php pdo错误处理

    2. errorinfo() 메소드

    errorinfo() 메소드는 데이터베이스 핸들 연산 시 발생하는 오류 정보를 얻는 데 사용됩니다. 이 메소드의 구문 형식은 다음과 같습니다.

    01 배열 errorinfo (void) errorinfo() 메서드의 반환 값은 관련 오류 정보가 포함된 배열입니다.

    errorinfo() 메소드 사용:

    1. $dsn = 'mysql:dbname=shop;host=localhost';
    2. $user_name = 'root';
    3. $user_psw = 'root';
    4. $pdo = new pdo($dsn, $user_name, $user_psw)
    5. $pdo->exec("update mytable set age=28 where id=1 "); //mytable 테이블이 존재하지 않습니다
    6. echo "errorinfo is: ";
    7. print_r($pdo->errorinfo());
    8. ?>

    코드에 의해 출력되는 오류 메시지는 다음과 같습니다. php pdo错误处理



    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿