2011-10-05 16 views
0

我有一個方法可以採取變量$其中。然後傳遞給$ this-> db-> where($ where);聲明。Codeigniter模仿where_in()函數與一個簡單的where()語句

我想模仿一個特定函數where_in()的功能。

我有一個數組格式或內爆字符串格式的ID列表。

我試圖通過$where=array('blog.ID IN'=>'1,3');

的方法都無濟於事。

這是造成WHERE博客. ID IN '1,3' 是輸出,而不是WHERE博客. ID IN '1','3'

誰能告訴我如何,我可以使用codeigniters其中()函數來模仿它的where_in()函數做什麼?

感謝

+0

對不起,我不明白爲什麼你不能使用實際的'where_in()'方法或只是簡單的'查詢()'?你可以發佈你的方法的代碼?我覺得有一個更簡單的方法來做到這一點.... –

+0

我不需要使用where()語句,它只是該函數被多個控制器使用,並使用where()語句使代碼更便攜.. Thx –

回答

0

嘗試:

$array = [1,3]; 
$where='blog.ID IN' . join(',', $array); 
+0

我不知道你已經使用的陣列格式是什麼,但沒有上述的遺憾不起作用.. 輸出WHERE'blog'.'ID' IN 1,3,而我相信WHERE'blog'.'ID' IN'1','3'是什麼要求...謝謝 –

+0

好吧,那麼也許這樣:'$ where ='blog.ID IN \''。連接(「','」,$ array)。 '\''; ' – swatkins

0

你不能做這樣的事?

function your_db_thingie($where) 
{ 
    $this->db->select('*'); 

    if (is_array($where)) 
    { 
     $this->db->where_in('field', $where); 
    } 
    else 
    { 
     $this->db->where('field', $where); 
    } 

    return $this->db->get('database'); 
} 
+0

原則上,好主意。但是我也將它作爲數組傳遞給where函數。 我現在所做的是將數據作爲加入的字符串傳遞給where_in函數,然後在函數中將其分解爲數組..但是這樣效率特別低。 –

+0

爲什麼不顯示整個功能,隨後會更容易提出建議。 – danneth