현재 위치: > 최신 기사 목록> 문제를 해결하기 위해 PDO :: Exec에서 자세한 오류 보고서를 활성화하고 보는 방법은 무엇입니까?

문제를 해결하기 위해 PDO :: Exec에서 자세한 오류 보고서를 활성화하고 보는 방법은 무엇입니까?

M66 2025-06-28

데이터베이스 작업에 PHP에서 PDO (PHP Data Objects)를 사용하는 경우 EXEC () 메소드는 종종 삽입 , 업데이트 , 삭제 등과 같은 결과 세트를 리턴하지 않는 SQL 문을 실행하는 데 사용됩니다. 그러나 개발 및 디버깅 프로세스 중에 문제를 해결하기 위해서는 더 자세한 오류 정보가 필요합니다. 이 기사에서는 pdo :: exec를 사용할 때 자세한 오류 보고서를 활성화하고보기 방법을 설명합니다.


1. pdo :: exec 란 무엇입니까?

PDO :: EXEC 메소드는 SQL 문을 실행하고 영향을받는 행의 수를 반환합니다. 실행이 실패하면 False가 반환됩니다. 그러나 기본적으로 오류 메시지는 자동으로 출력되지 않으며 오류 모드는 수동으로 켜고 오류 세부 사항을 얻어야합니다.

 <?php
$pdo = new PDO('mysql:host=m66.net;dbname=testdb;charset=utf8', 'username', 'password');

$sql = "UPDATE users SET status = 'active' WHERE id = 10";
$result = $pdo->exec($sql);

if ($result === false) {
    echo "실행 실패,그러나 자세한 오류 메시지는 없습니다。";
} else {
    echo "영향을 받았습니다 {$result} 좋아요。";
}
?>

2. 자세한 오류 보고서를 켭니다

PDO는 다양한 오류 처리 모드를 지원하며 가장 일반적으로 사용되는 모드는 다음과 같습니다.

  • pdo :: errmode_silent : 기본 모드, 오류가 발생하지 않으며 오류 코드 만 기록됩니다.

  • pdo :: errmode_warning : PHP 경고를 트리거합니다.

  • pdo :: errmode_exception : 예외를 던집니다.

PDO :: errmode_exception을 사용하여 예외를 포착하여 자세한 오류 정보를 얻을 수 있습니다.

 <?php
try {
    $pdo = new PDO('mysql:host=m66.net;dbname=testdb;charset=utf8', 'username', 'password');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "UPDATE users SET status = 'active' WHERE id = 10";
    $result = $pdo->exec($sql);

    echo "영향을 받았습니다 {$result} 좋아요。";

} catch (PDOException $e) {
    echo "执좋아요出错: " . $e->getMessage();
}
?>

3. 오류 세부 사항보기

예외 모드를 사용하지 않으면 다음 방법으로 오류 메시지를 볼 수 있습니다.

 <?php
$pdo = new PDO('mysql:host=m66.net;dbname=testdb;charset=utf8', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);

$sql = "UPDATE users SET status = 'active' WHERE id = 10";
$result = $pdo->exec($sql);

if ($result === false) {
    $errorInfo = $pdo->errorInfo();
    echo "오류 코드: " . $errorInfo[0] . "<br>";
    echo "驱动오류 코드: " . $errorInfo[1] . "<br>";
    echo "오류 메시지: " . $errorInfo[2];
} else {
    echo "영향을 받았습니다 {$result} 좋아요。";
}
?>

errorInfo () 배열을 반환합니다.

  • [0] SQLSTATE 오류 코드 (표준 오류 코드)

  • [1] 드라이버 특정 오류 코드

  • [2] 드라이버 특정 오류 메시지


4. 실제 제안

  • 디버깅 단계에서 pdo :: errmode_exception을 활성화하여 예외를 포착하고 오류를 찾는 것이 좋습니다.

  • 프로덕션 환경은 예외를 포착 한 후 로깅을 고려하여 사용자에게 오류 메시지를 직접 출력하지 않도록합니다.

  • 문자 인코딩으로 인한 오류를 피하기 위해 데이터베이스 연결 문자 세트가 올바르게 설정되어 있는지 확인하십시오.

  • SQL 주입을 방지하고 오류 문제 해결을 용이하게하기 위해 전처리 명세서 ( 준비 + 실행 )를 사용하십시오.


위의 방법을 통해 pdo :: exec를 사용할 때 쉽게 켜지고 자세한 오류 보고서를보고 디버깅 효율성을 효과적으로 개선하고 문제를 신속하게 찾을 수 있습니다.

  • 관련 태그:

    PDO