0

mysqli dbdriver で codeigniter 2.1.0 を使用しています。以下のクエリがあり、いつ成功するか知りたい

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

関連する行が削除されたかどうかを知るにはどうすればよいですか?

4

2 に答える 2

2

$this->db->affected_rows()あなたが探しているものです。その結果を、予想される削除された行数と比較できるはずです。

ユーザーガイドも引用

「書き込み」タイプのクエリ (挿入、更新など) を実行するときに、影響を受ける行の数を表示します。

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

于 2012-04-24T13:43:14.030 に答える
1

CodeIgniter ユーザーガイドから:

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

したがって、$query変数はTRUE成功またはFALSE失敗になります。

于 2012-04-24T11:22:56.687 に答える