尝试加入表Codeigniter时发生数据库错误

时间:2020-03-06 06:56:54

标签: mysql codeigniter

所以我想从两个表中获取数据。 但是我得到了这个错误:

enter image description here

这是我的从模型查询:

public function tampil_edit($id) {
            $this->db->join('tb_m_user', 'tb_m_user.id=tb_m_notaris.id');
            $this->db->select('tb_m_notaris.*,tb_m_user.email as email_notaris');
            return $this->db->get_where('tb_m_notaris', $id);
        }

这是我的控制器:

public function tampiledit($id) {
            $id = ['id' => $id];
            $title['title'] = 'Notaris | Edit';
            $data['notaris']    = $this->m_notaris->tampil_edit($id)->result();

            $this->load->view('template/headercss',$title);
            $this->load->view('template/sidebar');
            $this->load->view('template/navbar');
            $this->load->view('master_data/notaris/edit', $data);
            $this->load->view('template/footerjs');
        }

以下是$ id包含的内容: enter image description here

4 个答案:

答案 0 :(得分:1)

您应该在控制器中像这样通过

public function tampiledit($id) {
        $id = ['tb_m_notaris.id' => $id];
        $title['title'] = 'Notaris | Edit';
        $data['notaris']    = $this->m_notaris->tampil_edit($id);

        $this->load->view('template/headercss',$title);
        $this->load->view('template/sidebar');
        $this->load->view('template/navbar');
        $this->load->view('master_data/notaris/edit', $data);
        $this->load->view('template/footerjs');
    }

答案 1 :(得分:1)

检查您的SQL

WHERE id = 45
      ^^

id属于哪个表?我注意到有多个带有tb_m_notaris列的表(tb_m_userid)。

要调用功能

tampil_edit(45) {} # makesure $id is not an array

在模型中

public function tampil_edit($id) {
    $this->db->select('tb_m_notaris.*,tb_m_user.email as email_notaris');
    $this->db->from('tb_m_notaris');
    $this->db->join('tb_m_user', 'tb_m_user.id = tb_m_notaris.id');
    $this->db->where('tb_m_notaris.id', $id);
    return $this->db->get()->result();
}

答案 2 :(得分:1)

您应该尝试这个。

public function tampil_edit($id) {
   $this->db->select('tb_m_notaris.*,tb_m_user.email as email_notaris');
   $this->db->join('tb_m_user', 'tb_m_user.id=tb_m_notaris.id');
   $this->db->get_where('tb_m_notaris', array('tb_m_notaris.id' => $id));
   return $this->db->get()->row_array();
}

在您的控制器中更新

 $data['notaris']    = $this->m_notaris->tampil_edit($id);

答案 3 :(得分:0)

public function tampil_edit($id) {
   $this->db->select('tb_m_notaris.*,tb_m_user.email as email_notaris');
   $this->db->from('tb_m_notaris');
   $this->db->join('tb_m_user', 'tb_m_user.id=tb_m_notaris.id');
   $this->db->where('tb_m_notaris.id', $id);

   $query = $this->db->get();
   return $query->result_array();
}

您需要对此进行更新。 由于两个表中都存在id列,因此您需要通过提及表名来明确提供要连接的表ID。