Номер ошибки: 1064 при удалении данных с использованием Codeigniter 3 - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу удалить свои данные в таблице, но не могу удалить данные из-за этой проблемы. Номер ошибки: 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

Backtrace:

Файл: 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, для правильного синтаксиса для использования рядом с 'IS NULL' в строке 3

УДАЛИТЬ ИЗ daftar_dosen ГДЕ nip = '0001' И НУЛЬ

Имя файла: C: /xampp/htdocs/endtest/system/database/DB_driver.php

Номер строки: 691

Ответы [ 4 ]

0 голосов
/ 05 апреля 2019
public function hapusDataDosen($nip){
    $this->db->delete('daftar_dosen',array('nip'=>$nip));
}
0 голосов
/ 04 апреля 2019

Попробуйте это

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

ИЛИ

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

Не используйте $data, потому что

  1. Вы не передаете его функции модели
  2. Нет необходимости удалять запись из БД
0 голосов
/ 04 апреля 2019

Попробуйте - в модели

public function hapusDataDosen($nip)
    {
        $this->db->where('nip',$nip);
        $this->db->delete('daftar_dosen',$nip);
    }
0 голосов
/ 04 апреля 2019

Сообщение об ошибке очень ясно

Message: Undefined variable: data

Другими словами, где-то есть переменная $data, которая не определена.

Где в вашем коде находится $data? Ответ: В функции hapusDataDosen() при вызове $this->db->delete('daftar_dosen',$data);

Трудно точно знать, что вы пытаетесь сделать. Я думаю, все, что вам нужно сделать, это изменить

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

до

$this->db->delete('daftar_dosen');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...