Php 无法使用codeigniter更新或删除数据库中的行

Php 无法使用codeigniter更新或删除数据库中的行,php,database,codeigniter,crud,Php,Database,Codeigniter,Crud,我是CodeIgniter新手,在更新和删除我的数据库中的行时面临未知问题。我的控制器代码是: <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Nhome extends CI_Controller { public function __construct() { parent::__construct(); } public f

我是CodeIgniter新手,在更新和删除我的
数据库中的
时面临未知问题。我的控制器代码是:

 <?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();
    }
}
更改

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

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

将代码简化为:

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

用此代码替换控制器。因为我认为您是作为post方法传递数据的,所以在检索数据时应该使用post

<?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调试器进行调试。您可能会在调试器中得到确切的错误。我建议您再试一次,让我知道错误名称。

那么,您面临什么困难?有什么错误吗?如果是,请提供该错误。不,实际上没有错误。。我认为这是某种逻辑错误,因为在编辑行时,会出现editview,我也可以输入信息,按下submit按钮后,它会重定向到主页。。但没有数据被更新甚至删除。你能告诉我为什么会这样吗?如果你从你的模型中传递真或假,那么为什么不从你的控制器中检查它是真的?如果是真的,那么你调用查看页面或者你传递相同的页面。你也可以死在你的模型里,回显$this->db->last_query();然后查看生成的查询并在phpmyadmin中运行此查询,然后了解发生了什么。请在删除控制器中死亡并回显$this->input->get('Id');看看会发生什么?你的身份证是空白的吗?我试过了,也没用。这与简化无关。我找不到任何错误。这只是一些逻辑问题,它不起作用。我认为这是逻辑上的错误。你能解决这个问题吗?你用get id或id得到的变量名是什么?在控制器中,两者都使用。也许这有帮助。将$this->input->get('Id')更改为$this->input->get('Id');
<?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();
    }
}