如何加入表Codeigniter

时间:2014-07-10 10:14:26

标签: php mysql codeigniter join

我的模特:

        public function category($column, $value)
{
    $this->db->select('c.cat2, c.category, m.id, m.date, m.when_date, m.when_time, m.where_m, m.age1, m.age2, m.opis, m.rozpoznamy');
    $this->db->from('category c');
    $this->db->where($column, $value);
    $this->db->join('meeting m', 'm.id_cat = c.id');
    $result = $this->db->get();
    return $result->result();
}
        public function delete($where, $column, $value)
{
    $this->db->delete($this->users_m->category($column, $value), $where);
}

我的控制器:

    public function delete()
{
    $cat = $this->uri->segment(3);
    $value = $this->uri->segment(4);
    $column = 'm.id';
    $where = array('m.id' => $value);
    $this->users_m->delete($where, $column, $value);
    redirect('main/category/' . $cat);
}

我有从连接表中删除数据的问题,当我尝试删除时收到此消息:

  

发生数据库错误

     

错误号码:1146

     

表'ci.object'不存在

     

DELETE FROM`Object` WHERE`m` .id` ='13'

     

文件名:C:\ xampp \ htdocs \ ci \ system \ database \ DB_driver.php

     

行号:330

所以可能是函数delete中的表有问题。我尝试了不同的方法来到这个表,我不知道如何解决这个问题。任何线索?

1 个答案:

答案 0 :(得分:0)

您将CI对象传递到$this->db->delete(),因为$this->users_m->category()会返回一个对象的数据库结果数组。

CI删除的工作方式是传入表名,在您的情况下,它看起来像是

 public function delete($where) {
     $this->db->where('meeting m', $where);
     $this->db->delete('meeting');
 }

我无法解决为什么你有额外的价值