
PDO::exec는 SQL 명령을 실행하는 메서드입니다. 이 메서드는 SQL 명령이 성공적으로 실행되면 TRUE를 반환하고, 실패하면 FALSE를 반환합니다. 오류가 발생하면 PDOException이 발생합니다.
오류 메시지인 SQLSTATE[HY000]: General error: 1062 Duplicate entry 'john@example.com' for key 'email'는 이메일 주소가 이미 존재하는 경우 발생하는 오류입니다. 이 오류는 데이터베이스의 UNIQUE 제약 조건에 의해 발생합니다.
PDO::exec를 사용할 때 오류가 발생하는 경우는 다음과 같습니다.
1. SQL 명령이 잘못된 경우
2. 데이터베이스의 제약 조건에 위배되는 경우
3. 데이터베이스의 권한 문제
오류를 처리하는 방법은 다음과 같습니다.
1. try-catch 문을 사용하여 PDOException을 캐치하고 오류 메시지를 출력합니다.
2. PDO::errorCode() 메서드를 사용하여 오류 코드를 가져와 오류를 처리합니다.
3. PDO::errorInfo() 메서드를 사용하여 오류 정보를 가져와 오류를 처리합니다.
예를 들어, try-catch 문을 사용하여 오류를 처리하는 코드는 다음과 같습니다.
#hostingforum.kr
php
try {
$stmt = $pdo->exec("INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')");
if ($stmt === false) {
throw new PDOException($pdo->errorInfo()[2]);
}
} catch (PDOException $e) {
echo "오류 메시지: " . $e->getMessage();
}
이 코드는 PDO::exec를 사용하여 SQL 명령을 실행하고, 오류가 발생하면 PDOException을 캐치하고 오류 메시지를 출력합니다.
2025-07-13 11:34