제목 | [완료] CI 에서 WHERE절에 공백을 체크하려 한다면 ~? | ||
---|---|---|---|
글쓴이 | 수야디벨 | 작성시각 | 2015/03/23 14:49:52 |
|
|||
안녕하세요. 질문드립니다 ~ $this->db->query("SELECT * FROM table WHERE `table`.`title` != '&엔비sp' "); 를 올바르게 쿼리 조회 하려면 추가적으로 어떤 조치를 해야 할까요? 그냥 &엔bsp로 입력하면 조회되는 쿼리가 SELECT * FROM table WHERE `table`.`title` != '' 이렇게 되는데 , 실제로 컬럼에 &엔bsp가 들어가 있는 상황이라서 이를 걸러줘야 하는데.. 안되네요 ..ㅠㅋ 조언 부탁드립니다 ~ |
|||
다음글 | ci 3.0에서 tank_auth (3) | ||
이전글 | 파일 업로드 시 첨부 파일이 없어도 업로드 되게할 수 ... (6) | ||
변종원(웅파)
/
2015/03/23 15:31:37 /
추천
0
|
수야디벨
/
2015/03/23 16:39:03 /
추천
0
변종원//
ㅎㅎ 답변감사합니다. 이스케이프에 대해서는 평소에 알고 있어서 , 이미 적용도 해보고 시도도 해봤는데 case1 ) $this->db->where('title !=' ,'&엔bsp', false); 하면 쿼리 오류가 납니다. 오류 원인은 select * from table title != 이래서.. 즉 title != '' 이렇게 되어야 하는데 이스케이프 처리하면 title != 이렇게만 나옵니다. 그래서 .. $this->db->where('title !=', " '&엔bsp' " , false); 라고하면 오류는 안나나 , &엔bsp가 걸러지지는 않습니다. 쿼리가 '' 이런식으로 빈것이 나와서.. case2 ) $this->db->query("select * from table title != '&엔bsp' ",false); 이역시 위와 같은 오류가 나옵니다. 제가 잘못이해하고 있는걸까요? |
변종원(웅파)
/
2015/03/23 16:54:26 /
추천
0
|
한대승(불의회상)
/
2015/03/23 17:03:03 /
추천
0
그냥 or 로 묶으면 안되나요?
$this->db->where("title != '&엔bsp' or title != ''"); |
변종원(웅파)
/
2015/03/23 22:47:14 /
추천
0
제가 질문을 잘못 이해했네요. ㅎㅎ
SELECT * FROM people.`a_people` WHERE `name` LIKE ("% %")
SELECT * FROM people.`a_people` WHERE `name` NOT LIKE ("% %")
요런 방법도 있네요 |
ci세상
/
2015/03/23 23:01:33 /
추천
0
$query = $this->db->query(" SELECT * FROM member WHERE id != ' ' ");
foreach ($query->result_array() as $row) { echo $row['id']; } 쿼리가 정상작동해야 맞는것 같은데요 ~ 안되시면 디비툴로 해당 쿼리가 먹히는지 해보시고~ replace (title,' ',' ') 이렇게도 함 해보세요~ |
수야디벨
/
2015/03/24 10:18:34 /
추천
0
모두 답변감사드립니다 !
일단 웅파님이 알려주신 LIKE 문으로 걸러서 해결했습니다. ㅠ 도통 일반 액티브 쿼리로는 걸러지지가 않네요 ;;; CI 세상님이 알려주신   리플레이스도 생각해 보았습니다만, 개발 상황상 웅파님이 알려주신 방법이 적절하다 판단되어 해결했습니다. 답변 감사드립니다 ^^ |
또는 mysql에서는 null 이라는 구문을 이용합니다.