2015-01-27 4 views
-1

저는 PostgreSQL을 사용하고 새 프로젝트를 사용했습니다. 아래는 내가 직면 한 오류입니다. 나는 또한 구글에서 검색했지만 솔루션을 찾을 수 없습니다.PostgreSQL의 ILIKE

Fatal error: Call to undefined method CI_DB_postgre_driver::ilike() in D:\htdocs\poes\system\application\rapyd\classes\datafilter.php on line 162

저는 codeigniter 프레임 워크를 사용하고 있습니다. 이 코드는

$query1 = "SELECT DISTINCT users.* FROM users LEFT JOIN login ON users.user_id=login.login_user_id;"; 
$filter->db->query($query1); 
$filter->name = new inputField("Name :", "user_name"); 
$filter->name->clause = "ilike"; 
난 그냥 시스템/데이터베이스에이 기능을 추가해야이 문제를 해결
+1

어떤 프레임 워크를 사용하고 있습니까? –

+0

오류가 발생한 코드를 표시 할 수 있습니까? 'ILIKE'는 완벽하게 합법적 인 SQL이지만 함수라고는 할 수 없습니다. – Patrick

+0

@JoeLove codeigniter를 사용하고 있습니다. – shhrzl

답변

0

이/DB_active_rec.php부터 ILIKE에게

function ilike($field, $match = '', $side = 'both') 
{ 
    return $this->_ilike($field, $match, 'AND ', $side); 
} 

function _ilike($field, $match = '', $type = 'AND ', $side = 'both', $not = '') 
{ 
if (! is_array($field)) 
{ 
$field = array($field => $match); 
} 

    foreach ($field as $k => $v) 
    { 
$k = $this->_protect_identifiers($k); 

$prefix = (count($this->ar_like) == 0) ? '' : $type; 

$v = $this->escape_like_str($v); 

if ($side == 'before') 
{ 
$like_statement = $prefix." $k $not ILIKE '%{$v}'"; 
    } 
    elseif ($side == ‘after’) 
    { 
$like_statement = $prefix." $k $not ILIKE '{$v}%'"; 
    } 
    else 
    { 
$like_statement = $prefix." $k $not ILIKE '%{$v}%'"; 
    } 

    // some platforms require an escape sequence definition for ILIKE wildcards 
    if ($this->_like_escape_str != ‘’) 
    { 
$like_statement = $like_statement.sprintf($this->_like_escape_str, $this->_like_escape_chr); 
} 

    $this->ar_like[] = $like_statement; 
    if ($this->ar_caching === TRUE) 
    { 
$this->ar_cache_ilike[] = $like_statement; 
$this->ar_cache_exists[] = 'ilike'; 
} 

    } 
    return $this; 
} 

소스를 사용하기 위해, 내 컨트롤러에서 datafilter.php $this->db->ilike($name, $value);에서입니다 https://ellislab.com/forums/viewthread/87725/#808269