2011-03-01 65 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