>백엔드 개발 >PHP 튜토리얼 >PHP에서 PDO 준비 문 오류를 올바르게 처리하는 방법은 무엇입니까?

PHP에서 PDO 준비 문 오류를 올바르게 처리하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-07 04:56:10810검색

How to Properly Handle PDO Prepare Statement Errors in PHP?

PDO에서 준비 쿼리 오류를 처리하도록 PDO를 올바르게 구성하는 방법

PDO PHP를 사용하여 SQL 쿼리를 실행할 때 오류를 올바르게 처리하는 것이 중요합니다. . prepare() 메소드는 MySQL 오류를 생성할 수 있지만 기본 설정으로 인해 해당 오류가 표시되지 않을 수 있습니다.

오류 모드 설정

prepare() 메소드에서 오류를 캡처하려면 , PDO 속성 PDO::ATTR_ERRMODE를 PDO::ERRMODE_EXCEPTION으로 설정합니다. 오류가 발생하면 예외가 발생합니다.

에뮬레이션 비활성화

또한 MySQL이 명령문을 즉시 처리하도록 PDO::ATTR_EMULATE_PREPARES 기능을 비활성화합니다. 그렇지 않으면 실행될 때까지 오류가 감지되지 않을 수 있습니다.

다음 예는 오류를 올바르게 처리하도록 PDO를 구성하는 방법을 보여줍니다.

$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);

try {
    $pdo->prepare('INSERT INTO DoesNotExist (x) VALUES (?)');
} catch (PDOException $e) {
    // Handle the error message
    $errorMessage = $e->getMessage();
}

오류 출력

잘못된 쿼리를 실행하려고 하면 위의 예는 오류 메시지를 인쇄(또는 기록)합니다:

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

위 내용은 PHP에서 PDO 준비 문 오류를 올바르게 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.