2012-06-19 59 views
4

我在CodeIgniter中使用活動記錄。
而且我可以成功地將數據插入到數據庫中。
但是如何在失敗時得到插入sql的結果?
現在它返回一個html說關於sql錯誤。
我不想要這個html內容。如何在CodeIgniter中獲得活動記錄插入的結果

編輯

$data = array(
    'title' => 'My title' , 
    'name' => 'My Name' , 
    'date' => 'My date' 
); 

$this->db->insert('mytable', $data); 

簡單的代碼。但是當'name'列有獨特的屬性。我正在向它插入一個重複的值。它返回sql錯誤的html內容。

我只是想讓它返回錯誤代碼,而不是輸出html內容。

+0

什麼代碼,你到目前爲止寫的嗎?你想完成什麼工作:你是否希望得到一條消息,說明查詢已經執行,你想返回剛纔在數據庫中輸入的值,還是希望擺脫SQL錯誤? –

+0

那是模型,沒有錯。你的控制器和視圖是什麼樣的? –

回答

15

若不能得到數據庫錯誤信息,請確保您在文件/application/config/database.php中有$db['default']['db_debug'] = FALSE

你預製再經過你(未遂)插入你可以運行:

$num_inserts = $this->db->affected_rows();

如果結果爲0,您插入失敗,你可以提出你自己選擇的錯誤消息。

+2

我不知道以前是怎麼回事,但$ this-> db-> affected_rows()實際上在失敗時(插入後)返回-1。如果在更新查詢後沒有更新行,它將返回0。 – bestprogrammerintheworld

2

使用這些功能

$errNo = $this->db->_error_number(); 
$errMess = $this->db->_error_message(); 

他們將幫助

+0

你錯過了';'在第一行的結尾。 – devrique

相關問題