IM,這是從它的userguide如何查找執行成功與否的查詢?用笨2.0.2
$data = array(
'title' => $title,
'name' => $name,
'date' => $date
);
$this->db->where('id', $id);
$this->db->update('mytable', $data);
一次這個執行我的問題,你如何找到它的正確或不執行?
IM,這是從它的userguide如何查找執行成功與否的查詢?用笨2.0.2
$data = array(
'title' => $title,
'name' => $name,
'date' => $date
);
$this->db->where('id', $id);
$this->db->update('mytable', $data);
一次這個執行我的問題,你如何找到它的正確或不執行?
的update
函數返回一個值:
$result = $this->db->update('mytable', $data);
檢查值爲TRUE
(成功)或FALSE
(失敗)。 update
運行query
內部,然後返回的query
(Ref)的返回值:
查詢()函數返回時,「讀」式的查詢運行數據庫結果的對象,你可以用它來展現你的結果。當「寫入」類型的查詢運行時,它只是返回TRUE或FALSE,取決於成功或失敗。
使用
$this->db->affected_rows()
,看看有多少行已經影響了寫類型的查詢(UPDATE,INSERT,等等)
ive試過這也可以說,即時嘗試更新密碼和即時輸入相同的密碼,而不會改變然後受影響的行返回0 :( –
保持你的大腦編碼時開啓,如果你沒有udpate,那麼更新不會影響任何行。該函數按照公佈的方式工作,不要成爲一個傻瓜,用它作爲工具。 – hakre
兩個答案都是有效的。你只需要根據情況使用每一個。如果您如果查詢被執行使用這種方法只是檢查:
$result = $this->db->update('mytable', $data);
如果你真的想要的行數影響了第二種方法比較好:
$this->db->affected_rows()
但是我總是使用第二種方法。更新查詢就是一個很好的例子。查詢可以成功,但數據庫中沒有任何更新,因爲您試圖更新的值實際上等於您在查詢中發送的值。
這將是一個誤報。和受影響的行將是0. 我希望它有幫助=)
是的,但在這種情況下,你如何發現這是一個誤報或不? –
我試着用我的查詢「$結果= $ this-> db-> update('users',$ data,array('UserName'=> $ _POST [「UserName」]));「如果用戶名不存在於表中,它仍然返回成功 –
如果你想插入而不是更新,那麼你應該這樣做,否則你可能想要配置你的db,如果你嘗試更新一個不存在的行,它會出錯。做更新,我如果不存在,則爲nsert:http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html,http://stackoverflow.com/questions/1361340/how-to-insert-if -not-exists-in-mysql – hakre