From 41f60d44e37cc52d41a49d0d640f71761a82abe7 Mon Sep 17 00:00:00 2001 From: Derek Allard Date: Thu, 20 Dec 2007 20:09:22 +0000 Subject: Added the ability to pass an array of tables to the delete() statement in Active Record. --- system/database/DB_active_rec.php | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'system/database/DB_active_rec.php') diff --git a/system/database/DB_active_rec.php b/system/database/DB_active_rec.php index dfa0a3efb..d48d1c5bd 100644 --- a/system/database/DB_active_rec.php +++ b/system/database/DB_active_rec.php @@ -925,11 +925,13 @@ class CI_DB_active_record extends CI_DB_driver { * Compiles a delete string and runs the query * * @access public - * @param string the table to retrieve the results from + * @param mixed the table(s) to delete from. String or array * @param mixed the where clause + * @param mixed the limit clause + * @param boolean * @return object */ - function delete($table = '', $where = '', $limit = NULL) + function delete($table = '', $where = '', $limit = NULL, $reset_data = TRUE) { if ($table == '') { @@ -945,6 +947,16 @@ class CI_DB_active_record extends CI_DB_driver { $table = $this->ar_from[0]; } + if (is_array($table)) + { + foreach($table as $single_table) + { + $this->delete($this->dbprefix.$single_table, $where, $limit, FALSE); + } + $this->_reset_write(); + return; + } + if ($where != '') { $this->where($where); @@ -963,10 +975,13 @@ class CI_DB_active_record extends CI_DB_driver { } return FALSE; } - + $sql = $this->_delete($this->dbprefix.$table, $this->ar_where, $this->ar_limit); - $this->_reset_write(); + if ($reset_data) + { + $this->_reset_write(); + } return $this->query($sql); } -- cgit v1.2.3-24-g4f1b