簡體   English   中英

無法使用Codeigniter更新或刪除數據庫中的行

[英]Unable to update or delete rows in database using codeigniter

我是代碼點火器的新手,並且在database rows更新和刪除時遇到未知的問題。 我對Controller的代碼是:

 <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Nhome extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $this->load->Model('N_model');
        $data['r'] = $this->N_model->getdata();
        $this->load->view('Homeview',$data);
    }
    public function edit()
    {
        $id = $this->input->get('id');
        $this->load->Model('N_model');
        $data['s'] = $this->N_model->editdata();
        $this->load->view('Neditview',$data);
    }
    public function loadEdit()
    {
        $id = $this->input->get('id');
        $this->load->view('Neditview');
    }
    public function insertdata()
    {
        $eID = isset($_POST['Id'])?$_POST['Id']:'';

        $arr['Name'] = $_POST['Name'];
        $arr['Gender'] = $_POST['Gender'];
        $arr['Email'] = $_POST['Email'];

        $this->load->Model('N_model');
        $res = $this->N_model->updatedata($arr , $eID);
        if($res){
            header('location:'.base_url()."index.php/Nhome/".$this->index());
        }
    }
    public function delete(){
        $this->load->Model('N_model');
        $id = $this->input->get('Id');
        $this->N_model->deletedata($id);
        $this->index();
    }
}

我的模型代碼是:

<?php
class N_Model extends CI_Model{

    public $Id;
    public $Name;
    public $Gender;
    public $Email;

    public function __construct()
    {
        parent::__construct();
    }

    public function getdata()
    {
        $va = $this->db->get('newprac');
        $res = $va->result();
        return $res;
    }
    public function editdata($id)
    {
        $vr = $this->db->where('Id',$id);
        return $vr;
    }
    public function updatedata($data , $id){
        $this->db->where('newprac.Id',$id);
        $res = $this->db->update('newprac', $data);
        return $res;
    }
    public function deletedata($id)
    {
        $this->db->where('newprac.id',$id);
        $this->db->delete('newprac');
        if($this->db->affected_rows()>0)
        {
            return true;
        }
        else { return false; }
    }
}

更改

$this->db->where('newprac.id',$id)

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

將代碼簡化為:

$this->db->where('id',$id)->update('newprac', $data);

用此代碼替換您的控制器。 因為我認為您將數據作為發布方法進行傳遞,所以檢索數據時應使用發布。

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Nhome extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $this->load->Model('N_model');
        $data['r'] = $this->N_model->getdata();
        $this->load->view('Homeview',$data);
    }
    public function edit()
    {
        $id = $this->input->post('id');
        $this->load->Model('N_model');
        $data['s'] = $this->N_model->editdata();
        $this->load->view('Neditview',$data);
    }
    public function loadEdit()
    {
        $id = $this->input->post('id');
        $this->load->view('Neditview');
    }
    public function insertdata()
    {
        $eID = isset($_POST['Id'])?$_POST['Id']:'';

        $arr['Name'] = $_POST['Name'];
        $arr['Gender'] = $_POST['Gender'];
        $arr['Email'] = $_POST['Email'];

        $this->load->Model('N_model');
        $res = $this->N_model->updatedata($arr , $eID);
        if($res){
            header('location:'.base_url()."index.php/Nhome/".$this->index());
        }
    }
    public function delete(){
        $this->load->Model('N_model');
        $id = $this->input->post('Id');
        $this->N_model->deletedata($id);
        $this->index();
    }
}

您是否嘗試使用Chrome調試器進行調試。 您可能會在調試器中得到確切的錯誤。 我建議您嘗試一次,讓我知道錯誤名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM