iwinv.net 클라우드변경후 글쓰기시 에러출력이 됩니다

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
iwinv.net 클라우드변경후 글쓰기시 에러출력이 됩니다

QA

iwinv.net 클라우드변경후 글쓰기시 에러출력이 됩니다

답변 3

본문



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


클라우드디비로 변경해서 사용하니 이렇게 에러가 납니다

 

3555819198_1737465934.8056.png

 

이 질문에 댓글 쓰기 :

답변 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 재시작

 

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 테이블 기본값 설정을 우선 고려하시기 바랍니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로