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
bf_filesize 값에 숫자가 들어가야하는데 빈값이라서 그렇습니다.
쿼리를 보니 g4_board_file 이 있던데 그누보드4로 만들어진건가요?
db버젼이 올라가면서 칼럼에 대한 기본값 설정이 바뀌어서 그런거 같네요.
클라우드 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"
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 테이블 기본값 설정을 우선 고려하시기 바랍니다.
!-->!-->!-->!-->