summaryrefslogtreecommitdiffstats
path: root/system/database/DB_driver.php
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2012-05-26 17:21:14 +0200
committerAndrey Andreev <narf@bofh.bg>2012-05-26 17:21:14 +0200
commit16bb9bd93698335fc1692adcfbd20d8e4fda6268 (patch)
tree659548f65e50033ab49bc5e4ee7720d04b9a5377 /system/database/DB_driver.php
parent8f24b1c9ad93365d5e2d20de9f89468e26ebbe34 (diff)
Move count_all() from the drivers to CI_DB_driver
Diffstat (limited to 'system/database/DB_driver.php')
-rw-r--r--system/database/DB_driver.php32
1 files changed, 30 insertions, 2 deletions
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index d8a1c13f0..bbb7b7a80 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -742,6 +742,35 @@ abstract class CI_DB_driver {
// --------------------------------------------------------------------
/**
+ * "Count All" query
+ *
+ * Generates a platform-specific query string that counts all records in
+ * the specified database
+ *
+ * @param string
+ * @return int
+ */
+ public function count_all($table = '')
+ {
+ if ($table == '')
+ {
+ return 0;
+ }
+
+ $query = $this->query($this->_count_string.$this->escape_identifiers('numrows').' FROM '.$this->protect_identifiers($table, TRUE, NULL, FALSE));
+ if ($query->num_rows() == 0)
+ {
+ return 0;
+ }
+
+ $query = $query->row();
+ $this->_reset_select();
+ return (int) $query->numrows;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
* Returns an array of table names
*
* @return array
@@ -1395,8 +1424,7 @@ abstract class CI_DB_driver {
/**
* Dummy method that allows Query Builder class to be disabled
- *
- * This function is used extensively by every db driver.
+ * and keep count_all() working.
*
* @return void
*/