mysqli dbdriver で codeigniter 2.1.0 を使用しています。以下のクエリがあり、いつ成功するか知りたい
$query = $this->db->query("delete FROM abc WHERE id IN (" . $IdList . ")");
関連する行が削除されたかどうかを知るにはどうすればよいですか?
mysqli dbdriver で codeigniter 2.1.0 を使用しています。以下のクエリがあり、いつ成功するか知りたい
$query = $this->db->query("delete FROM abc WHERE id IN (" . $IdList . ")");
関連する行が削除されたかどうかを知るにはどうすればよいですか?
$this->db->affected_rows()
あなたが探しているものです。その結果を、予想される削除された行数と比較できるはずです。
ユーザーガイドも引用
「書き込み」タイプのクエリ (挿入、更新など) を実行するときに、影響を受ける行の数を表示します。
注: MySQL では、"DELETE FROM TABLE" は影響を受ける 0 行を返します。データベース クラスには、影響を受ける行の正しい数を返すことを可能にする小さなハックがあります。デフォルトでは、このハックは有効になっていますが、データベース ドライバ ファイルで無効にすることができます。
この関数は、 「読み取り」タイプのクエリが実行されたときにデータベース結果オブジェクト
query()
を返します。これを使用して、結果を表示できます。「書き込み」タイプのクエリが実行されると、成功または失敗に応じてorが返されます。TRUE
FALSE
したがって、$query
変数はTRUE
成功またはFALSE
失敗になります。