채택완료

wr_option 의 에러가 있는것을 어떻게 해결해야 할까요?

2026-04-02 (목) 16:59:07 231
insert / update 시 wr_option 에서 오류가 나는데
어떻게 해결을 해야 할까요

SQL오류(1265): Data truncated for column 'wr_option' at row 1

쿼리문을 보면 해당 칼럼의 값이 wr_option = 'html1,,' 이렇게 되는데

이 부분이 에러가 납니다.

에러 나는 php버전은 8.4 입니다.

그런데 같은 소스로 제작한 다른 사이트는 php7.3 인데 

여기서는 에러가 안나는데 왜 그럴까요?

DB에 해당 필드 속성은 이렇습니다.

`wr_option` SET('html1','html2','secret','mail') NOT NULL,

혹시 같은 경험 있으신 분 조언 좀 부탁드립니다~
|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
2026-04-02 (목) 18:36:21
선생님 오류는 MySQL/MariaDB에서 SET 타입 컬럼에 잘못된 값이 들어갈 때 현상입니다.
PHP 7.x에서는 SET 컬럼에 잘못된 값이 들어가도 경고 없이 무시하거나 빈 값으로 처리되는 경우가 많았습니다.
하지만 PHP 8.x 이상에서는 MySQL 드라이버가 더 엄격하게 동작하면서, SET 정의에 없는 값('')이 들어가면 Data truncated 에러를 발생시킵니다.
즉, 같은 코드라도 PHP 버전과 MySQL 드라이버 동작 차이 때문에 에러 발생 여부가 달라진 것이지요.
하여
이미 기존디비 에 데이터값이 잘못 들어가있는 상황이라면 업데이트로 수정해 보시기 바랍니다.
UPDATE g5_board_table SET wr_option = REPLACE(wr_option, ',,', ',');

답변에 대한 댓글 1개

2026-04-03 (금) 11:36:37
친절한 답변 감사드립니다.

답변을 작성하려면 로그인이 필요합니다.