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 중국어 웹사이트의 기타 관련 기사를 참조하세요!