summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2011-09-21 13:39:29 +0200
committerAndrey Andreev <narf@bofh.bg>2011-09-21 13:39:29 +0200
commitef3e2402b22a7687730520971c27bec466b5167d (patch)
treed6bd915baab49108780f39e2e079887e9e92fefd
parenta4fac6b8ac17b6864e632fe821b650291a9d4c42 (diff)
Fix issue #182 in system/database/drivers/oci8_result.php by caching the num_rows property after statement execution
-rw-r--r--system/database/drivers/oci8/oci8_result.php17
-rw-r--r--user_guide/changelog.html1
2 files changed, 11 insertions, 7 deletions
diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php
index 88531b436..2713f6f12 100644
--- a/system/database/drivers/oci8/oci8_result.php
+++ b/system/database/drivers/oci8/oci8_result.php
@@ -42,15 +42,18 @@ class CI_DB_oci8_result extends CI_DB_result {
*/
function num_rows()
{
- $rowcount = count($this->result_array());
- @ociexecute($this->stmt_id);
-
- if ($this->curs_id)
+ if ($this->num_rows === 0 && count($this->result_array()) > 0)
{
- @ociexecute($this->curs_id);
+ $this->num_rows = count($this->result_array());
+ @ociexecute($this->stmt_id);
+
+ if ($this->curs_id)
+ {
+ @ociexecute($this->curs_id);
+ }
}
- return $rowcount;
+ return $this->num_rows;
}
// --------------------------------------------------------------------
@@ -246,4 +249,4 @@ class CI_DB_oci8_result extends CI_DB_result {
/* End of file oci8_result.php */
-/* Location: ./system/database/drivers/oci8/oci8_result.php */ \ No newline at end of file
+/* Location: ./system/database/drivers/oci8/oci8_result.php */
diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index 8a4a70642..b205d5e3b 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -129,6 +129,7 @@ Change Log
<li>Fixed a bug (#85) - OCI8 (Oracle) database escape_str() function did not escape correct.</li>
<li>Fixed a bug (#344) - Using schema found in <a href="libraries/sessions.html">Saving Session Data to a Database</a>, system would throw error "user_data does not have a default value" when deleting then creating a session.</li>
<li>Fixed a bug (#112) - OCI8 (Oracle) driver didn't pass the configured database character set when connecting.</li>
+ <li>Fixed a bug (#182) - OCI8 (Oracle) driver used to re-execute the statement whenever num_rows() is called.</li>
</ul>
<h2>Version 2.0.3</h2>