2011-03-01 76 views
0

這個問題可能有一個簡單的解決方案,但如果我有下面的函數和$ events包含未知數量的整數,我將如何在這樣的查詢中使用$ events變量?codeigniter查詢問題

function remove_events($events) 
{ 
    $sql = "delete from events where event_id in $events"; 
    $query = $this->db->query($sql); 
} 
+0

我應該澄清。 $ events是一個整數數量未知的數組。 – Catfish 2011-03-01 22:40:11

回答

4

如果$事件是一個單一的值,則必須使用

$sql = "delete from events where event_id = $events"; 

或者,如果它是一個數組

$sql = "delete from events where event_id in (".implode(',', $events).") "; 
+0

謝謝你。我需要逃避我的$ events數組嗎? – Catfish 2011-03-01 22:42:49

0

希望你在$事件的內容像1 ,2,3 ...。如果沒有問題,否則如果數字之間有空格,請使用此格式。 implode(',',explode(' ',$events)); 試試看,讓我知道。

1

以下sql語法應該可以幫助您解決您的查詢。

刪除FROM事件WHERE event_id IN('2','3');

在上面的例子中(2,3)應該是一個codeigniter數組。

0

讓活動記錄使工作:

$this->db->where_in('id', $events)->delete('events'); 

所有值都逃脫自動生產出更安全的查詢。

+0

不起作用。你得到一個錯誤,因爲$ events是一個數組。 – Catfish 2011-03-01 22:39:27

+0

對不起!它說'哪裏'應該說'where_in'。現在編輯! – 2011-03-02 10:51:05