From 31380e88dd6af1d91ef1de0425b320706462e887 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 9 Jul 2012 15:53:19 +0300 Subject: Alter CI_DB_pdo_result::num_rows() --- system/database/drivers/pdo/pdo_result.php | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'system/database/drivers') diff --git a/system/database/drivers/pdo/pdo_result.php b/system/database/drivers/pdo/pdo_result.php index a366a5f12..44fdd6dc5 100644 --- a/system/database/drivers/pdo/pdo_result.php +++ b/system/database/drivers/pdo/pdo_result.php @@ -26,26 +26,27 @@ */ class CI_DB_pdo_result extends CI_DB_result { + public $num_rows; + /** * Number of rows in the result set * - * @access public - * @return integer + * @return int */ - function num_rows() + public function num_rows() { - if (is_numeric(stripos($this->result_id->queryString, 'SELECT'))) + if (is_int($this->num_rows)) { - $dbh = $this->conn_id; - $query = $dbh->query($this->result_id->queryString); - $result = $query->fetchAll(); - unset($dbh, $query); - return count($result); + return $this->num_rows; } - else + elseif (($this->num_rows = $this->result_id->rowCount()) > 0) { - return $this->result_id->rowCount(); + return $this->num_rows; } + + $this->num_rows = count($this->result_id->fetchAll()); + $this->result_id->execute(); + return $this->num_rows; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From da4f9e1291c6b4d9beb682b635a811de897fbacf Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Sep 2012 10:31:10 +0300 Subject: Backport a fix for oci8_result::num_rows() --- system/database/drivers/oci8/oci8_result.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'system/database/drivers') diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php index ae133d7b5..3421278a5 100644 --- a/system/database/drivers/oci8/oci8_result.php +++ b/system/database/drivers/oci8/oci8_result.php @@ -26,9 +26,9 @@ */ class CI_DB_oci8_result extends CI_DB_result { - var $stmt_id; - var $curs_id; - var $limit_used; + public $stmt_id; + public $curs_id; + public $limit_used; /** * Number of rows in the result set. @@ -36,8 +36,6 @@ class CI_DB_oci8_result extends CI_DB_result { * Oracle doesn't have a graceful way to retun the number of rows * so we have to use what amounts to a hack. * - * - * @access public * @return integer */ public function num_rows() @@ -53,7 +51,7 @@ class CI_DB_oci8_result extends CI_DB_result { } } - return $rowcount; + return $this->num_rows; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b