iwinv.net 클라우드변경후 글쓰기시 에러출력이 됩니다 채택완료
SLDB_Lite MariaDB-v10 iwinv.net 클라우드변경후 글쓰기시 에러출력이 됩니다
글은 잘 써집니다
혹시 아시는분 두움이 필요합니다
기존디비도 MariaDB-v10 였습니다
insert into g4_board_file set bo_table = 'bbs06_02', wr_id = '34', bf_no = '0', bf_source = '', bf_file = '', bf_content = '', bf_download = 0, bf_filesize = '', bf_width = '', bf_height = '', bf_type = '', bf_datetime = '2025-01-21 22:23:31'
1366 : Incorrect integer value: '' for column `adlip`.`g4_board_file`.`bf_filesize` at row 1
error file : /bbs/write_update.php
클라우드디비로 변경해서 사용하니 이렇게 에러가 납니다

답변 3개
클라우드 DB 환경에서 MariaDB v10의 STRICT_TRANS_TABLES SQL 모드가 활성화되어,
빈 문자열('')이 정수 타입 컬럼(bf_filesize)에 허용되지 않아 발생한 오류입니다.
SQL 모드 수정,
DB 테이블 기본값 설정,
애플리케이션 코드 수정 중 적합한 방법을 선택하여 적용하십시오.
MariaDB의 STRICT_TRANS_TABLES 모드를 비활성화하면 빈 문자열도 정수형 컬럼에 허용됨.
*MariaDB 설정 파일(/etc/my.cnf 또는 /etc/mysql/my.cnf) 수정
[mysqld]
sql_mode="NO_ENGINE_SUBSTITUTION"
*또는 SQL 명령어로 수정
SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';
SET SESSION sql_mode = 'NO_ENGINE_SUBSTITUTION';
DB 테이블 수정으로 bf_filesize 컬럼의 기본값을 0으로 설정하여
빈 값이 들어갈 경우에도 에러가 발생하지 않도록 처리
ALTER TABLE g4_board_file MODIFY COLUMN bf_filesize INT DEFAULT 0;
write_update.php에서 데이터 삽입 전 bf_filesize 값이 빈 문자열일 경우 0으로 변환
$bf_filesize = empty($bf_filesize) ? 0 : (int)$bf_filesize;
STRICT_TRANS_TABLES 비활성화는 전체 데이터베이스에 영향을 미칠 수 있으므로,
애플리케이션 코드 수정이나 DB 테이블 기본값 설정을 우선 고려하시기 바랍니다.
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
쿼리를 보니 g4_board_file 이 있던데 그누보드4로 만들어진건가요?
db버젼이 올라가면서 칼럼에 대한 기본값 설정이 바뀌어서 그런거 같네요.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
와우 자세한 설명 친절한 설명 감사합니다
해결되었습니다^^
https://sir.kr/bbs/board.php?bo_table=cm_free&wr_id=158904
Mysql 5.6 버전에는
SELECT @@GLOBAL.sql_mode;
SET @@GLOBAL.sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'