dev/web

"Data truncated for column 'column_name' at row 1" 고찰

재삐신생 2015. 9. 10. 20:05
반응형

DB INSERT 시 컬럼이 NOT NULL 여부에 관계없이


실수나 정수형에 데이타에 ''(빈문자열)을 입력하면 발생하는 오류다.


sql_mode가 STRICT mode이면 ERROR을 아니면 WARNING을 표시해준다.


그런데 persistent connection도 문제의 원인이 될 수 있나 보다.


정확한 쿼리 사용이 되면 좋겠지만, 현실은 그렇지 않다.


유지보수 및 추가개발 등으로 남의 코드를 보다 보면, 빈번히 볼 수 있을 것이다.




겪은 상황을 요약한다.


서버 - CENT OS

언어 - PHP

DB - MARIADB

버전은 생략한다.




DB 프로시저를 호출, 프로시저 내부에서 INSERT문 수행

쿼리순서

prepared statement사용 CALL procedure

SET @param을 수행

EXECUTE statement USING @param


3번째 EXECUTE에서 db 오류 발생


sql_mode를 default로 두고, pconnect를 사용하지 않으니, 쿼리가 수행되었다.


임시방편은 이러하고, 전면 수정은 고려해봐야겠다.

반응형