]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-14679 dml/native_mysqli fixed recordsets handling
authorskodak <skodak>
Sat, 25 Oct 2008 18:12:17 +0000 (18:12 +0000)
committerskodak <skodak>
Sat, 25 Oct 2008 18:12:17 +0000 (18:12 +0000)
lib/dml/mysqli_native_moodle_recordset.php

index fd9ff7ea2c283117a4d25297943a068bc8c54922..98baa8592f6d80371a50c80868463b455a0a4b60 100644 (file)
@@ -6,12 +6,10 @@ class mysqli_native_moodle_recordset extends moodle_recordset {
 
     protected $result;
     protected $current;
-    protected $row;
 
     public function __construct($result) {
         $this->result  = $result;
         $this->current = $this->fetch_next();
-        $this->row     = 0;
     }
 
     public function __destruct() {
@@ -21,24 +19,25 @@ class mysqli_native_moodle_recordset extends moodle_recordset {
     private function fetch_next() {
         if ($row = $this->result->fetch_assoc()) {
             $row = array_change_key_case($row, CASE_LOWER);
-            $row = (object)$row;
         }
         return $row;
     }
 
     public function current() {
-        return $this->current;
+        return is_null($this->current) ? null : (object)$this->current;
     }
 
     public function key() {
-        return $this->row;
+    /// return first column value as key
+        if (is_null($this->current)) {
+            return false;
+        }
+        $key = reset($this->current);
+        return $key;
     }
 
     public function next() {
-        if ($this->current = $this->fetch_next()) {
-            $this->row++;
-        }
-        return $this->current;
+        $this->current = $this->fetch_next();
     }
 
     public function rewind() {
@@ -55,6 +54,5 @@ class mysqli_native_moodle_recordset extends moodle_recordset {
             $this->result  = null;
         }
         $this->current = null;
-        $this->row     = 0;
     }
 }