告诉我,可能是什么问题?我尽其所能,但不断显示'错误'。 控制器:
<?php
class Boss extends CI_Controller {
function __construct()
{
parent:: __construct();
$this->load->model('boss_model');
$this->load->model('news_model');
$this->load->model('reviews_model');
}
public function index()
{
if($this->userlib->logged_in_boss() == FALSE)
show_404();
$data['news'] = $this->news_model->get_news();
$data['reviews'] = $this->reviews_model->get_reviews();
$this->load->view('boss/main.php', $data);
}
public function review_del($id)
{
$delete = $this->reviews_model->del_review($id);
if($delete)
{
echo "Success";
}
else
{
echo "Error";
}
}
}
reviews_model:
<?php
class Reviews_model extends CI_Model {
public function del_review($id = null)
{
$this->db->delete('reviews', array('id' => $id));
}
}
P.S。 - 表'review'不为空,'database'包含在autoload.php中
答案 0 :(得分:1)
del_review
不返回值,因此$delete
永远不会获得正确的结果值,并且始终计算为false。所以删除本身might
已经成功,但你永远不会知道。 ;)
最简单:改变如下:
public function del_review($id = null)
{
return $this->db->delete('reviews', array('id' => $id));
}
我认为这应该返回delete语句本身是否成功。这不会告诉您是否删除了实际行。也许它之前被其他人删除了。如果要检查,可以使用:
public function del_review($id = null)
{
$this->db->delete('reviews', array('id' => $id));
return $this->db->affected_rows() > 0;
}
执行delete语句,然后检查是否删除了实际行。因此,当您尝试删除不存在的记录时,也会收到错误。