CI 묻고 답하기

제목 ci4 쿼리 오류가 발생하지 않습니다.
카테고리 CI 4 관련
글쓴이 nuno 작성시각 2021/11/16 12:00:38
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 7135   RSS
$this->default  = [
	'DSN'      => '',
	'hostname' => '',
	'username' => '',
	'password' => '',
	'database' => '',
	'DBDriver' => 'MySQLi',
	'DBPrefix' => '',
	'pConnect' => false,
	'DBDebug'  => true,
	'db_debug'  => true,
	'charset'  => 'utf8',
	'DBCollat' => 'utf8_general_ci',
	'swapPre'  => '',
	'encrypt'  => false,
	'compress' => false,
	'strictOn' => false,
	'failover' => [],
	'port'     => 3306,
];

 

$db = db_connect();
$db->query("UPDATE member SET point = '60,000' WHERE id = 1");
var_dump($db->error());

$builder = $db->table('member');
$id = 1;
$data = [
	'point' => '60,000'
];
$builder->where('id', $id);
$builder->update($data);

$model = new \App\Models\MemberModel();
$model->update($id, $data);

 

point 필드는 int인데 형식과 다른 값을 업데이트해도 오류가 발생을하지 않고

60으로 업데이트가됩니다. 해당 쿼리를 직접 디비에서 실행했을때는 오류가 확인이되고 있습니다. 

어떻게하면 오류가 나오게할수 있을까요? 사용자 가이드를 찾아봐도 해당 내용을 찾지 못하고있습니다.

ci4 버전은 4.1.4입니다 .답변부탁드리겠습니다. 

 

 다음글 비정상적인 실행시간 (4)
 이전글 프로세스 증가시 연결이 비정상적으로 끊어집니다. (1)

댓글

테러보이 / 2021/11/16 17:46:05 / 추천 0

해당 필드 타입이 int로 되있어서 ,기준으로 앞의 숫자만 업데이트 되는듯합니다.

,를 제거 하고 넣으세요

nuno / 2021/11/16 18:15:22 / 추천 0

@테러보이

숫자가 아닌 텍스트를 제거하고 넣으면되기는 하지만 실수나 오류로 처리되지 않고 들어갔을시에 잘못된 값을 넣는것보다는 오류가 발생해서 문제되는것을 방지를 하고 싶어서 오류가 나오게 할수 없는지 문의했습니다.

테러보이 / 2021/11/17 10:37:23 / 추천 0
DB에 넣기전 해당 값이 is_numeric인지 체크 하는 방법밖에 없지 않을까 싶습니다.
nuno / 2021/11/17 11:07:21 / 추천 0

@테러보이

 

답변 감사합니다.