2012-04-24 13 views
0

mysqli dbdriverでcodeigniter 2.1.0を使用しています。 は、私は以下のクエリを持っており、それが成功した場合、関連する行が削除された場合mysqli dbdriverを使用して行が削除されているかどうかを確認する方法

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

にはどうすれば知ることができます知っていただきたいと思いますか? CodeIgniter User Guideから

+0

'$ IdList'がエスケープされていることに非常に注意してください。 [SQLインジェクション](http://php.net/manual/en/security.database.sql-injection.php)を参照してください。 – eggyal

+0

HI eggyal問題は、行が実際に削除されたかどうか、1か所でオプションを試してもクエリが実行されたがどの問題があったかわからないが行が削除されていないことmysql – bleu

答えて

1

query()機能を使用すると、show your resultsに使用することができますオブジェクトがタイプクエリが実行されている「読み取り」データベースの結果を返します。 「書き込み」タイプのクエリを実行すると、成功または失敗に応じてTRUEまたはFALSEが返されます。

のでご$query変数は失敗に成功した場合にTRUEまたはFALSEになります。

2

$this->db->affected_rows()はあなたが探しているものです。その結果を予想される削除済み行数と比較できるはずです。 「書き込み」タイプのクエリ(挿入、更新、など)を実行するときもUSER GUIDE

を表示し、影響を受けた行の数を、引用

注:MySQLでは、「DELETE FROM TABLE」は影響を受ける行を0に戻します。 データベースクラスには小さなハックがあり、影響を受ける行の数が正しい を返すことができます。デフォルトでは、このハックは有効になっていますが、データベースドライバファイルでは を無効にすることができます。

関連する問題