Php 无法使用codeigniter更新或删除数据库中的行
我是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
数据库中的行
时面临未知问题。我的控制器代码是:
<?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();
}
}