这个问题可能有一个简单的解决方案,但如果我有下面的函数和$ events包含未知数量的整数,我将如何在这样的查询中使用$ events变量?codeigniter查询问题
function remove_events($events)
{
$sql = "delete from events where event_id in $events";
$query = $this->db->query($sql);
}
这个问题可能有一个简单的解决方案,但如果我有下面的函数和$ events包含未知数量的整数,我将如何在这样的查询中使用$ events变量?codeigniter查询问题
function remove_events($events)
{
$sql = "delete from events where event_id in $events";
$query = $this->db->query($sql);
}
如果$事件是一个单一的值,则必须使用
$sql = "delete from events where event_id = $events";
或者,如果它是一个数组
$sql = "delete from events where event_id in (".implode(',', $events).") ";
谢谢你。我需要逃避我的$ events数组吗? – Catfish 2011-03-01 22:42:49
希望你在$事件的内容像1 ,2,3 ...。如果没有问题,否则如果数字之间有空格,请使用此格式。 implode(',',explode(' ',$events));
试试看,让我知道。
以下sql语法应该可以帮助您解决您的查询。
删除FROM事件WHERE event_id IN('2','3');
在上面的例子中(2,3)应该是一个codeigniter数组。
让活动记录使工作:
$this->db->where_in('id', $events)->delete('events');
所有值都逃脱自动生产出更安全的查询。
不起作用。你得到一个错误,因为$ events是一个数组。 – Catfish 2011-03-01 22:39:27
对不起!它说'哪里'应该说'where_in'。现在编辑! – 2011-03-02 10:51:05
我应该澄清。 $ events是一个整数数量未知的数组。 – Catfish 2011-03-01 22:40:11