Codeigniter 更新数据库中的数据
Codeigniter Update Data In Database
我是 Codeigniter 的新手,无法理解我在更新数据库数据的代码中做错了什么。非常感谢您的意见,因为我一直在绞尽脑汁试图找出问题所在。谢谢!
这是我的控制器:
public function edit(){
$slug=basename($_SERVER['REQUEST_URI']);
$data['news_item']=$this->news_model->get_news($slug);
$id=$data['news_item']['id'];
$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = 'Edit a news item';
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('text', 'Text', 'required');
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('news/edit');
$this->load->view('templates/footer');
}
else{
$data = array(
'title' => $this->input->post('title'),
'text' => $this->input->post('text')
);
$this->news_model->edit_news($id,$data);
$this->load->view('templates/header', $data);
$this->load->view('news/success');
$this->load->view('templates/footer');
}
}
这些是我的模型,一个用于获取 table 行,一个用于更新(显然是 xD):
public function get_news($slug= FALSE){
if($slug === FALSE){
$query=$this->db->get('news');
return $query->result_array();
}
$query=$this->db->get_where('news', array ('slug' => $slug));
return $query->row_array();
}
public function edit_news($id,$data){
$this->db->where('id',$id);
$this->db->update('news',$data);
return;
}
我已经调试了(如果你可以这样称呼的话)控制器和模型,并通过打印或回显来检查所有重要的值,这些都是有序的。
我认为我的表格或任何东西都没有错。在调用实际更新之前,一切似乎都运行良好(
$this->db->where('id',$id);
$this->db->update('news',$data);
)。
我什至不记得我在这个 xD 上试过什么 在此先感谢您的任何输入!
尝试返回更新
return $this->db->update('news',$data);
另外,您输入的 id 变量在哪里?
也许会
$this->db->where('id', $this->input->post('id'))
看起来像
$this->db->where('id', $this->input->post('id'));
return $this->db->update('news',$data);
但请先尝试返回。
第 2 部分来自关于如何创建更新函数的评论
public function edit_news($id,$data){
$slug = url_title($this->input->post('title'));
$data = array('title' => $this->input->post('title'),
'slug' => $slug,
'body' => $this->input->post('body')
);
$this->db->where('id', $this->input->post('id'));
return $this->db->update('posts',$data);
}
我是 Codeigniter 的新手,无法理解我在更新数据库数据的代码中做错了什么。非常感谢您的意见,因为我一直在绞尽脑汁试图找出问题所在。谢谢!
这是我的控制器:
public function edit(){
$slug=basename($_SERVER['REQUEST_URI']);
$data['news_item']=$this->news_model->get_news($slug);
$id=$data['news_item']['id'];
$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = 'Edit a news item';
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('text', 'Text', 'required');
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('news/edit');
$this->load->view('templates/footer');
}
else{
$data = array(
'title' => $this->input->post('title'),
'text' => $this->input->post('text')
);
$this->news_model->edit_news($id,$data);
$this->load->view('templates/header', $data);
$this->load->view('news/success');
$this->load->view('templates/footer');
}
}
这些是我的模型,一个用于获取 table 行,一个用于更新(显然是 xD):
public function get_news($slug= FALSE){
if($slug === FALSE){
$query=$this->db->get('news');
return $query->result_array();
}
$query=$this->db->get_where('news', array ('slug' => $slug));
return $query->row_array();
}
public function edit_news($id,$data){
$this->db->where('id',$id);
$this->db->update('news',$data);
return;
}
我已经调试了(如果你可以这样称呼的话)控制器和模型,并通过打印或回显来检查所有重要的值,这些都是有序的。
我认为我的表格或任何东西都没有错。在调用实际更新之前,一切似乎都运行良好(
$this->db->where('id',$id);
$this->db->update('news',$data);
)。
我什至不记得我在这个 xD 上试过什么 在此先感谢您的任何输入!
尝试返回更新
return $this->db->update('news',$data);
另外,您输入的 id 变量在哪里?
也许会
$this->db->where('id', $this->input->post('id'))
看起来像
$this->db->where('id', $this->input->post('id'));
return $this->db->update('news',$data);
但请先尝试返回。
第 2 部分来自关于如何创建更新函数的评论
public function edit_news($id,$data){
$slug = url_title($this->input->post('title'));
$data = array('title' => $this->input->post('title'),
'slug' => $slug,
'body' => $this->input->post('body')
);
$this->db->where('id', $this->input->post('id'));
return $this->db->update('posts',$data);
}