2013-05-02 68 views
1
$code = Array(1,2,3,4) 
$sql = "SELECT * FROM Table1 WHERE Field1 IN (?)"; 
$query = $this->db->query($sql, array($code)); 

$this->db->last_query()將顯示笨參數整數和字符串

"SELECT * FROM Table1 WHERE Field1 IN ('1,2,3,4')" 

如何刪除單引號在IN條件?

即使$code是一個字符串數組,例如

$code = Array('This one', 'Next code', 'And this') 

的聲明將是:

"SELECT * FROM Table1 WHERE Field1 IN ('This one, Next Code, And This')" 

我缺少的東西?

TIA。

回答

3

可以使用這種簡單的和備用方式

$this->db->where_in('Field1',$code); 
$this->db->get('Table1'); 
1

從笨活性記錄manual

$這 - > DB->其中()接受一個可選的第三個參數。如果您將其設置爲FALSE,CodeIgniter將不會嘗試使用反引號來保護您的字段或表 名稱。

$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE); 

所以,把第三個參數上的WHERE子句與FALSE

然後將查詢應該是

$this->db->select('*') 
      ->where('Field1 IN('.$code.'),NULL,FALSE) 
      ->get('Table1');