제목 | 빌더에서 escape 문자 변경 | ||
---|---|---|---|
카테고리 | CI 4 관련 | ||
글쓴이 | 스노우린 | 작성시각 | 2022/05/09 17:07:18 |
|
|||
현재 암호화를 복호화하는 과정에서 키값에 등호가 들어가있는 상태입니다. 그런데 ci4에서 자동으로 제공하는 escape 문자가 ! 인데 이걸 변경하지 않으면 !=가 escape의 !대신 다르다의 != 로 인식되는 상황입니다.... else if($where[0] === 'hand'){ $where[0] = "aes_decrypt(unhex(hand), '$key')"; } $type = gettype($where[1]); if($type === 'string'){ $this->like($where[0],$where[1]); } else{ $this->where("$where[0] BETWEEN '{$where[1][0]}' AND '{$where[1][1]}'"); } $data = $this->orderBy("(member.idx) DESC")->limit($this->limit,$this->offset)->find(); 어떤 식으로 해결이 가능할까요
저번 글에 정확히 명시하지 않아 혼란스러웠던점 한대승님께 죄송합니당.... |
|||
다음글 | max_execution_time 관련 질문입니다. (1) | ||
이전글 | mysql 쿼리문 (2) | ||
한대승(불의회상)
/
2022/05/09 17:29:27 /
추천
0
!= 대신 <> 를 사용하셔도 됩니다.
|
스노우린
/
2022/05/09 17:31:41 /
추천
0
한대승 키값에 =가 들어가서 =가 연산자 =로 인식하지 않고 문자 = 로 인식되게 해야합니다. |
한대승(불의회상)
/
2022/05/10 10:12:00 /
추천
0
$this->like() 네번째 변수에 false를 전달하시면 해당오류 수정 가능합니다. $this->like($where[0],$where[1], 'both', false);
|
스노우린
/
2022/05/10 13:32:09 /
추천
0
한대승 그렇게 해서 $where[1] = asd 가정할때 %asd%로 들어갑니다. 작은 따옴표가 없어서 쿼리문에 오류가 나왔었습니다. 그래서 both가 아닌 none로 처리하고 $this->like($where[0],"'%$where[1]%'", 'none', false); 이런식으로 처리했습니다 |