개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.28 02:45

PDO::errorInfo 메서드 사용 시 오류 메시지 이해 도움 요청

목록
  • 디버깅의신 15시간 전 2025.07.28 02:45 새글
  • 4
    1
저는 PDO::errorInfo 메서드를 사용하여 오류를 확인하려고 하지만, 오류 메시지의 의미를 이해할 수 없습니다. 예를 들어, 오류 코드가 00000 인 경우 메시지가 'General error: 1267 Illegal mix of collation('utf8_general_ci' and collation('utf8mb4_0900_ai_ci')' 이라고 뜹니다. 이 오류 메시지의 의미를 정확하게 이해하고 싶습니다.

오류 코드와 메시지의 관계에 대해 자세히 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  15시간 전



    PDO::errorInfo 메서드는 오류 코드와 오류 메시지를 반환합니다. 오류 코드는 MySQL의 오류 코드를 의미하며, 오류 메시지는 오류 코드에 대한 설명입니다.

    오류 코드 00000은 성공을 의미합니다. 하지만 오류 메시지는 \'General error: 1267 Illegal mix of collation(\'utf8_general_ci\' and collation(\'utf8mb4_0900_ai_ci\')\' 이라고 뜨는 이유는 MySQL이 utf8mb4_0900_ai_ci와 utf8_general_ci를 혼용하고 있기 때문입니다.

    utf8mb4_0900_ai_ci는 MySQL 8.0 이상에서 사용하는 collation입니다. 하지만 utf8_general_ci는 MySQL 5.7 이하에서 사용하는 collation입니다. 두 collation을 혼용하면 오류가 발생하는 것입니다.

    해결 방법은 두 collation을 동일하게 설정하는 것입니다. 예를 들어, utf8mb4_0900_ai_ci를 사용하는 경우 모든 테이블과 열의 collation을 utf8mb4_0900_ai_ci로 설정하면 오류가 해결됩니다.

    또한, PDO::errorInfo 메서드의 세 번째 인자로 error_mode를 설정하여 오류 메시지를 더 자세히 알 수 있습니다. error_mode를 PDO::ERRMODE_EXCEPTION으로 설정하면 오류 메시지가 예외로 변환되어 더 자세히 알 수 있습니다.

    2025-07-28 02:46

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 39,586건 / 1 페이지

검색

게시물 검색