控制器:
public function delete()
{
$id=$this->uri->segment(3);
$this->book_model->deletepost($id);
$data['books']=$this->book_model->getposts();
$this->load->view('showbooks',$data);
}
型号:
public function getposts()
{
$posts=$this->db->get('books');
$books=array();
foreach ($posts->result() as $row)
{
$books=array(
'book_id' => $row->bookid,
'book_name' => $row->booktitle,
'book_author' => $row->bookauthor,
'book_year' => $row->bookyear,
'book_isbn' => $row->bookisbn,
'book_publisher' => $row->bookpublisher
);
}
return $books;
}
public function deletepost($id)
{
$this->db->where('id',$id);
$this->db->delete('books');
}
问题是我无法删除记录。
这是错误:Unknown column 'id' in 'where clause'
DELETE FROM `books` WHERE `id` = 0
答案 0 :(得分:4)
当您收到帖子时,列名称为book_id
。删除时为id
。所以也许您需要将其更改为book_id
。
在这种情况下,$this->uri->segment(3)
也将返回null,因为function delete()
没有参数。更多详细信息请参阅here
但我会做一些改变:
<强>控制器:强>
public function delete()
{
$id=$this->uri->segment(3); // Try to write any id here, or in function put parameter
$this->book_model->deletepost($id);
$data['books']=$this->book_model->getposts();
$this->load->view('showbooks',$data);
}
<强>型号:强>
public function getposts() {
return $this->db->get('books')->result_array();
}
public function deletepost($id) {
$this->db->where('book_id',$id); // I change id with book_id
$this->db->delete('books');
}
答案 1 :(得分:1)
打开你的phpmyadmin并在这里查找表“books”,点击“查看”,你将获得表格(字段)的结构,检查,是否有名称为“id”的字段。
第二种方式建议您将“where子句”中的短语“未知列'id'复制到translate.google.ru,您就会明白这意味着。
所以,否则:如果你有自动增量的字段“ID”,它不能是0,也检查它