Activerecord 不在的活动记录

Activerecord 不在的活动记录,activerecord,codeigniter-2,Activerecord,Codeigniter 2,此查询的活动记录格式 $this->db->query('DELETE FROM default_model WHERE cat_id NOT IN (SELECT id FROM default_category)'); 我试了很多,但都做不到。如何传递$query查询结果作为标准对象返回。因此,在将数组传递给delete查询之前,需要从非关联数组中返回的对象中获取id 像这样: $query = $this->db->select('id')

此查询的活动记录格式

 $this->db->query('DELETE FROM default_model WHERE cat_id NOT IN (SELECT id FROM default_category)');

我试了很多,但都做不到。如何传递$query

查询结果作为标准对象返回。因此,在将数组传递给delete查询之前,需要从非关联数组中返回的对象中获取id

像这样:

$query = $this->db->select('id')
                              ->get('category')->result();

                $this->db->where_not_in('cat_id',$query )
                        ->delete('model');

它在我的本地主机中运行良好。但当我上传到online时,它会显示意外的解析错误[。怎么了?这是因为您上传代码的服务器的PHP版本非常旧。短数组语法是在PHP5.4中引入的。要在服务器上工作,请切换到第2行的$ids=array()。
$result = $this->db->select('id')->get('category')->result();
$ids = [];
foreach($result as $result)
     $ids[] = $result->id;

$this->db->where_not_in('cat_id', $ids)->delete('model');