From 80dd702d4c46552a3d1f94c5083c83eeff333b45 Mon Sep 17 00:00:00 2001 From: Derek Allard Date: Tue, 18 Dec 2007 23:55:06 +0000 Subject: Added where_in() to Active Record. --- system/database/DB_active_rec.php | 40 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) (limited to 'system') diff --git a/system/database/DB_active_rec.php b/system/database/DB_active_rec.php index e8059ab76..c3279e8c3 100644 --- a/system/database/DB_active_rec.php +++ b/system/database/DB_active_rec.php @@ -41,6 +41,8 @@ class CI_DB_active_record extends CI_DB_driver { var $ar_order = FALSE; var $ar_orderby = array(); var $ar_set = array(); + var $ar_wherein = array(); + /** @@ -240,9 +242,41 @@ class CI_DB_active_record extends CI_DB_driver { } return $this; } - - - + + // -------------------------------------------------------------------- + + /** + * Where_in + * + * Generates a WHERE field IN ('item', 'item') SQL query + * + * @access public + * @param string The field to search + * @param array The values searched on + * @param string + * @return object + */ + function where_in($key = NULL, $values = NULL, $type = 'and') + { + if ($key === NULL || !is_array($values)) + { + return; + } + + $type = (strtolower($type) == 'or') ? ' OR ' : ' AND '; + + foreach ($values as $value) + { + $this->ar_wherein[] = $this->escape($value); + } + + $prefix = (count($this->ar_where) == 0) ? '' : $type; + + $this->ar_where[] = $prefix.$key. " IN (" . implode(", ", $this->ar_wherein) . ") "; + + return $this; + } + // -------------------------------------------------------------------- /** -- cgit v1.2.3-24-g4f1b