제목 | 액티브 레코드 사용시 백틱(`) 문자열이 사라집니다. | ||
---|---|---|---|
글쓴이 | 에카 | 작성시각 | 2013/09/16 22:50:10 |
|
|||
$query = $this->db->SELECT('`V2-tag`.`tag_name`, COUNT(`V2-tag_index`.`tag_id`)') ->FROM('`V2-tag_index`') ->JOIN('`V2-tag`', '`V2-tag_index`.`tag_id` = `V2-tag`.`tag_id`') ->WHERE('`V2-tag_index`.`controllername`', 'imageboard') ->WHERE('`V2-tag_index`.`boardid`', $boardid) ->GROUP_BY('`V2-tag_index`.`tag_id`') ->ORDER_BY('COUNT(`V2-tag_index`.`tag_id`)', 'DESC', true) ->LIMIT(30, 0) ->GET();이렇게 짰다면, 제가 원하는 SQL은 SELECT `V2-tag`.`tag_name` , COUNT( `V2-tag_index`.`tag_id` ) FROM `V2-tag_index` JOIN `V2-tag` ON `V2-tag_index`.`tag_id` = `V2-tag`.`tag_id` WHERE `V2-tag_index`.`controllername` = 'imageboard' AND `V2-tag_index`.`boardid` = 'imageboard' GROUP BY `V2-tag_index`.`tag_id` ORDER BY COUNT( `V2-tag_index`.`tag_id` ) DESC LIMIT 30이건데, SELECT `V2-tag`.`tag_name`, COUNT(`V2-tag_index`.`tag_id`) FROM `V2-tag_index` JOIN `V2-tag` ON V2-tag_index`.`tag_id` = `V2-tag`.`tag_id` WHERE `V2-tag_index`.`controllername` = 'imageboard' AND `V2-tag_index`.`boardid` = 'imageboard' GROUP BY `V2-tag_index`.`tag_id` ORDER BY COUNT(`V2-tag_index`.`tag_id`) DESC LIMIT 30이렇게 나옵니다. 잘보시면 JOIN문의 ON 뒤에 V2-tag_index 테이블을 가르키는 앞에 ` 문자열이 사라져있죠. 방법이 없을까요? 테이블 이름 바꾸는거 말구요 --; 데이터베이스 드라이버는 PDO드라이버 사용하고, DB는 MySQL(MariaDB)사용중입니다. |
|||
다음글 | view 이미지를 만들려고 하는 과정에 다시 질문 드립... (3) | ||
이전글 | 조금 황당한 ajax..... (3) | ||
변종원(웅파)
/
2013/09/16 23:00:37 /
추천
0
|
에카
/
2013/09/16 23:01:58 /
추천
0
웅파님 // 제가 하도 답답해서 active record 관련해서 쿼리뜯다가 넣은거에요 --;
구조도 모르고 뜯다가 낭패만 봤습니다 --ㅋ |
letsgolee
/
2013/09/16 23:05:52 /
추천
0
system/database/DB_active_rec.php 파일의 다음을 찾아보세요. 331라인정도에 있습니다.
if (preg_match('/([\w\.]+)([\W\s]+)(.+)/', $cond, $match)) { $match[1] = $this->_protect_identifiers($match[1]); $match[3] = $this->_protect_identifiers($match[3]); $cond = $match[1].$match[2].$match[3]; }그리고 거기서 preg_match 안에 있는 첫번째 괄호에 보면 [\w\.]이렇게 되어 있죠? 거기에 `을 추가해보세요. 그럼 [\w\.`]이렇게 될 겁니다. 그리고 테스트를 ... |
에카
/
2013/09/16 23:07:07 /
추천
0
letsgolee님 감사합니다. 제 묵은 체증이 한번에 씻어내려가는 느낌입니다 ㅠㅠ
바로 한방에 해결되었네요 |
변종원(웅파)
/
2013/09/16 23:10:02 /
추천
0
order_by도 작업하셨나봐요?
AR이 100% 완벽하지 않습니다. 전 조금 복잡해지는 쿼리는 sql문으로 작성하여 사용합니다. |
에카
/
2013/09/16 23:16:08 /
추천
0
엇 order_by는 안건드렸는데 왜들어가있는지 모르겠네요 --; 코딩하면서 자꾸 깜빡깜빡 하나봐요. ㅠㅠ
웅파님 말씀대로 앞으로 복잡한 쿼리는 SQL문으로 작성해야겠네요. 감사합니다! |
들국화
/
2013/09/17 09:52:21 /
추천
0
AR 을 전혀 안쓰는 1인..... ^^
|
매뉴얼 다시 보시길.. 거기는 left, right 등등 join 방식 쓰는 곳입니다.
세번째 파라미터 지우고 작업했는데도 그렇다면 sql문으로 작성하시는 방법과
버그리포팅을 하는 방법이 있을 것 같네요.