2015-01-17 3 views
1

나는 mysql 함수를 사용하여 여러 조건부 조인을 만들려고하는데, codeigniter는 "`"사이에 함수를두고 요청을 실패한다.codeigniter에서 여러 조건부 조인을 사용할 때 "`"를 피하는 방법은 무엇입니까?

$this->db 
      ->join(
      'contribution_contributions t2', 
      $this->db->dbprefix($this->_table).'.id = t2.contact_id AND `t2`.`created` >= NOW() - INTERVAL 5 DAY AND `t2`.`created` < (NOW() + 
        INTERVAL 5 DAY', 
      'inner' 
     ); 

쿼리

INNER JOIN `default_contribution_contributions` `t2` ON `default_contribution_contacts`.`id` = `t2`.`contact_id` AND `NOW`() - `INTERVAL 5` `DAY` AND `NOW`() + `INTERVAL 5` `DAY)` 

문자열 t2. created

`NOW`() - `INTERVAL 5` `DAY` AND `NOW`() + `INTERVAL 5` `DAY)` 
+1

'select()'메소드에는 분명히'false'를 설정하고 식별자 인용을 비활성화하는 매개 변수가 있습니다. http://stackoverflow.com/questions/7482594/weird-backticks-behaviour-in-active-record-in-code-igniter-2-0-3'join()'에 비슷한 기능이 있는지는 모르겠지만, 아마도 쿼리에서'select()'를 가질 수도 있고 가질 수도 있습니다. –

+1

CI가 잘 모르고 테스트 할 수 없습니다. 나는 이것이 같은 방법으로 조인에 적용되는지 모르겠으므로 복제본으로 닫지 않을 것입니다. 하지만 [docs] (https://ellislab.com/codeigniter/user-guide/database/active_record.html#select)를 읽는다면, 전체 표현식을'-> select()'로 대체 할 수 있습니다. 일부 activerecord 동작을 포기합니다. –

+0

예! join()도 인자를 가진다! – abenevaut

답변

2

마지막 인수가 "`"

/** 
* Join 
* 
* Generates the JOIN portion of the query 
* 
* @param string 
* @param string the join condition 
* @param string the type of join 
* @param string whether not to try to escape identifiers 
* @return object 
*/ 
public function join($table, $cond, $type = '', $escape = NULL) 

감사 마이클 탈출 조건을 건너 뛸 수 있도록 가입 사라진 두 조건은 "`"사이에 위치!

관련 문제