2012-04-24 67 views
0

我使用codeigniter 2.1.0和mysqli dbdriver。 我有下面的查詢,並想知道什麼時候是成功的如何知道是否使用mysqli dbdriver刪除行

$query = $this->db->query("delete FROM abc WHERE id IN (" . $IdList . ")"); 

我怎麼能知道,如果相關行被刪除?

+0

要小心'$ IdList'已被轉義;你可能想閱讀[SQL注入](http://php.net/manual/en/security.database.sql-injection.php)。 – eggyal 2012-04-24 11:32:33

+0

嗨eggyal問題是,我怎麼知道該行是否已被刪除,我曾試過你在一個地方的選項,查詢已運行,​​但我不知道有什麼問題,但該行並未從MySQL的 – bleu 2012-04-30 10:38:26

回答

1

CodeIgniter User Guide

query()函數返回一個數據庫結果對象當「讀」式的查詢運行,您可以用它來show your results。當「寫入」類型的查詢運行時,取決於成功或失敗,它僅返回TRUEFALSE

因此您$query變量將是失敗的成功TRUEFALSE

2

$this->db->affected_rows()是你在找什麼。您應該能夠將該結果與預計的已刪除行數進行比較。

做 「寫」 類型的查詢(INSERT,UPDATE,等)時,也引用了USER GUIDE

顯示受影響的行數。

注意:在MySQL中,「DELETE FROM TABLE」返回0個受影響的行。 數據庫類有一個小黑客,它允許它返回正確的 數量的受影響的行。默認情況下,該攻擊已啓用,但可以在數據庫驅動程序文件中關閉 。