diff options
author | Rogerio Prado de Jesus <rogeriopradoj@gmail.com> | 2012-05-19 18:45:44 +0200 |
---|---|---|
committer | Rogerio Prado de Jesus <rogeriopradoj@gmail.com> | 2012-05-19 18:45:44 +0200 |
commit | 27738491fc11d0b9ce5670b2f6a7957fc421ee4b (patch) | |
tree | 9fa2ee9417387f5cf4bf0f108dcce25f69f0f8c2 /system/database/drivers/pdo/pdo_result.php | |
parent | 9fa8d404790833a098a8bbd855f1452897d6ff88 (diff) |
Fix a issue with CI_DB_pdo_result::num_rows()
In case of SELECT queries PDOStatement::rowCount doesn't work as expected. This commit
makes it returns the expected value.
Diffstat (limited to 'system/database/drivers/pdo/pdo_result.php')
-rw-r--r-- | system/database/drivers/pdo/pdo_result.php | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/system/database/drivers/pdo/pdo_result.php b/system/database/drivers/pdo/pdo_result.php index 7f3058ff0..c05fbc908 100644 --- a/system/database/drivers/pdo/pdo_result.php +++ b/system/database/drivers/pdo/pdo_result.php @@ -34,7 +34,18 @@ class CI_DB_pdo_result extends CI_DB_result { */ function num_rows() { - return $this->result_id->rowCount(); + if (is_numeric(stripos($this->result_id->queryString, 'SELECT'))) + { + $dbh = $this->conn_id; + $query = $dbh->query($this->result_id->queryString); + $result = $query->fetchAll(); + unset($dbh, $query); + return count($result); + } + else + { + return $this->result_id->rowCount(); + } } // -------------------------------------------------------------------- |