2014-03-01 47 views
0

告訴我,可能是什麼問題?我盡其所能,但不斷顯示'錯誤'。 控制器:從數據庫中刪除不起作用

<?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. - 表'評論'不是空的,'數據庫'包含在autoload.php中

+0

$ id在哪裏定義? – sinisake

+0

我寫example.com/boss/review_del/1並顯示false:c – user2639766

回答

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語句,事後檢查,如果實際行已被刪除。所以當你試圖刪除不存在的記錄時,你也會遇到錯誤。

+0

現在比較好。 ;) – sinisake

+0

謝謝!有用 :) – user2639766