错误编号:使用Codeigniter 3删除数据时出现1064

时间:2019-04-03 18:49:03

标签: php mysql codeigniter mariadb codeigniter-3

我想删除表中的数据,但是由于这个问题,我无法删除数据。错误编号:1064

这是我的控制器

class Dosen extends CI_Controller
{
public function __construct()
{
    parent ::__construct();
    $this->load->library('form_validation');
    $this->load->model('Dosen_model');
}
public function index() 
{
    $data['judul'] = 'Daftar Dosen';
    $data['dosen'] = $this->Dosen_model->getAllDosen();
    $this->load->view('templates/header', $data);
    $this->load->view('dosen/index', $data);
    $this->load->view('templates/footer');
}
public function tambah()
{   
    $data['judul'] = 'Form tambah data Dosen';
    $this->form_validation->set_rules('nip','NIP','required');
    $this->form_validation->set_rules('nama','Nama','required');
    if ($this->form_validation->run()==FALSE)
    {
        $this->load->view('templates/header', $data);
        $this->load->view('dosen/tambah');
        $this->load->view('templates/footer');
    }
    else 
    {
        $this->Dosen_model->tambahDataDosen();
        $this->session->set_flashdata('flash','Ditambahkan');
        redirect('Dosen');
    }
}
public function hapus($nip)
{
    $this->Dosen_model->hapusDataDosen($nip);
    $this->session->set_flashdata('flash','Dihapus');
    redirect('Dosen'); 
} 

这是我的模特

<?php
class Dosen_model extends CI_Model
{
    public function getAllDosen()
    {
        $query = $this->db->get('daftar_dosen');
        return $query->result_array();
    }
    public function tambahDataDosen()
    {
        $data = [
            "nip" => $this->input->post('nip'),
            "nama" => $this->input->post('nama'),
            "prodi" => $this->input->post('prodi'),
        ];
        $this->db->insert('daftar_dosen',$data);
    }      
    public function hapusDataDosen($nip)
    {
        $this->db->where('nip',$nip);
        $this->db->delete('daftar_dosen',$data);
    }
}

输出为: 遇到PHP错误 严重程度:通知

消息:未定义的变量:数据

文件名:models / Dosen_model.php

行号:23

回溯:

文件:C:\ xampp \ htdocs \ endtest \ application \ models \ Dosen_model.php 行:23 功能:_error_handler

文件:C:\ xampp \ htdocs \ endtest \ application \ controllers \ Dosen.php 线:40 功能:hapusDataDosen

文件:C:\ xampp \ htdocs \ endtest \ index.php 线:315 功能:require_once

然后

发生数据库错误 错误编号:1064

您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以在第3行的“ IS NULL”附近使用正确的语法

daftar_dosen的{​​{1}} ='0001'处删除并且为空

文件名:C:/xampp/htdocs/endtest/system/database/DB_driver.php

行号:691

4 个答案:

答案 0 :(得分:1)

尝试一下- 在模型中

public function hapusDataDosen($nip)
    {
        $this->db->where('nip',$nip);
        $this->db->delete('daftar_dosen',$nip);
    }

答案 1 :(得分:0)

错误消息很清楚

Message: Undefined variable: data

换句话说,某处有一个未定义的变量$data

在您的代码中哪里找到$data?答案:在hapusDataDosen()调用中的功能$this->db->delete('daftar_dosen',$data);

很难确切地知道您要做什么。我的猜测是您要做的就是更改

$this->db->delete('daftar_dosen', $data); 

$this->db->delete('daftar_dosen');

答案 2 :(得分:0)

尝试一下

public function hapusDataDosen($nip){
    $this->db->where('nip',$nip);
    $this->db->delete('daftar_dosen');
}

OR

public function hapusDataDosen($nip){
    $this->db->delete('daftar_dosen', ['nip' => $nip]);
}

不要使用$data,因为

  1. 您没有将其传递给模型函数
  2. 没有必要从数据库中删除记录

答案 3 :(得分:0)

public function hapusDataDosen($nip){
    $this->db->delete('daftar_dosen',array('nip'=>$nip));
}