codeigniter的数据库错误

时间:2015-11-02 04:19:54

标签: php mysql codeigniter

我想制作一个编辑表格

这是我的控制者:

public function edit_data($id_kategori){
    $artikel = $this->mymodel->GetArtikel("where id_kategori = '$id_kategori'");
    $data = array(
        "id_kategori" => $mhs[0]['id_kategori'],
        "nama_lengkap" => $mhs[0]['nama_lengkap'],
        "judul" => $mhs[0]['judul'],
        "nama_kategori" => $mhs[0]['nama_kategori'],
        "isi" => $mhs[0]['isi']
    );
    $this->load->view('form_edit',$data);
    }   

public function do_update(){
    $id_kategori= $_POST['id_kategori'];
    $nama       = $_POST['nama_lengkap'];
    $judul      = $_POST['judul'];
    $nama_kategori  = $_POST['nama_kategori'];
    $isi        = $_POST['isi'];
    $data_insert = array(
    'id_kategori' => $id_kategori,
    'nama_lengkap' => $nama,
    'judul' => $judul,
    'nama_kategori' => $nama_kategori,
    'isi' => $isi);
    $where = array('id_kategori' => $id_kategori);
    $res = $this->mymodel->UpdateData('artikel',$data_update,$where);
    if($res>=1){
        $this->session->set_flashdata('pesan','Update Data Sukses');
        redirect('crud/index');
    }
    }

和我的模特:

public function GetArtikel($id_kategori=''){
        $data = $this->db->query('SELECT a.id_artikel, a.judul, a.tanggal_buat, a.tanggal_update, b.nama_kategori, c.nama_lengkap, c.id_user FROM artikel as a LEFT JOIN kategori as b on a.id_kategori=b.id_kategori LEFT JOIN user as c on a.id_user=c.id_user' .$id_kategori);
        return $data->result_array();
    }
    public function UpdateData($tabelNama,$data,$where){
        $res = $this->db->update($tabelNama,$data,$where);
        return $res;
        }

但是当我跑到浏览器时。错误:

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在#id; id_kategori =' 1''''''''在第1行

如何解决?

2 个答案:

答案 0 :(得分:1)

在连接WHERE子句之前放置一个空格:

....on a.id_user=c.id_user' .$id_kategori);

....on a.id_user=c.id_user ' .$id_kategori);

答案 1 :(得分:0)

在控制器中

public function do_update(){    

    $res = $this->mymodel->UpdateData();

    if($res == TRUE)
    {
        # Success
        $this->session->set_flashdata('pesan','Update Data Sukses');
        redirect('crud/index');
    }
    else
    {
        # Error
        echo "Update Failed";
    }
}

在模型中

public function UpdateData(){

    $id_kategori    = $_POST['id_kategori'];
    $nama           = $_POST['nama_lengkap'];
    $judul          = $_POST['judul'];
    $nama_kategori  = $_POST['nama_kategori'];
    $isi            = $_POST['isi'];

    $data = array(
       'nama_lengkap'   => $nama,
       'judul'          => $judul,
       'nama_kategori'  => $nama_kategori,
       'isi'            => $isi
    );

    $this->db->where('id_kategori', $id_kategori);

    if(!$this->db->update('artikel', $data))
    {
        #Error
        return FALSE;
    }
    else
    {
        #Success
        return TRUE;
    }
}