MDL-25708 recordsets - fix course & enrol dir uses
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Thu, 30 Dec 2010 00:18:25 +0000 (01:18 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 25 Jan 2011 18:58:59 +0000 (19:58 +0100)
course/lib.php
course/user.php
enrol/authorize/localfuncs.php

index 28983a9..d5a5ba5 100644 (file)
@@ -1757,17 +1757,16 @@ function rebuild_course_cache($courseid=0, $clearonly=false) {
         @set_time_limit(0);  // this could take a while!   MDL-10954
     }
 
-    if ($rs = $DB->get_recordset("course", $select,'','id,fullname')) {
-        foreach ($rs as $course) {
-            $modinfo = serialize(get_array_of_activities($course->id));
-            $DB->set_field("course", "modinfo", $modinfo, array("id"=>$course->id));
-            // update cached global COURSE too ;-)
-            if ($course->id == $COURSE->id) {
-                $COURSE->modinfo = $modinfo;
-            }
+    $rs = $DB->get_recordset("course", $select,'','id,fullname');
+    foreach ($rs as $course) {
+        $modinfo = serialize(get_array_of_activities($course->id));
+        $DB->set_field("course", "modinfo", $modinfo, array("id"=>$course->id));
+        // update cached global COURSE too ;-)
+        if ($course->id == $COURSE->id) {
+            $COURSE->modinfo = $modinfo;
         }
-        $rs->close();
     }
+    $rs->close();
     // reset the fast modinfo cache
     $reset = 'reset';
     get_fast_modinfo($reset);
index c50dc40..b5ab6cd 100644 (file)
@@ -400,7 +400,8 @@ switch ($mode) {
         }
 
         // Check if result is empty
-        if (!$rs = $DB->get_recordset_sql($sql)) {
+        $rs = $DB->get_recordset_sql($sql);
+        if (!$rs->valid()) {
 
             if ($course->id != 1) {
                 $error = get_string('nocompletions', 'coursereport_completion');
@@ -409,6 +410,7 @@ switch ($mode) {
             }
 
             echo $OUTPUT->notification($error);
+            $rs->close(); // not going to loop (but break), close rs
             break;
         }
 
@@ -437,8 +439,7 @@ switch ($mode) {
                 $courses['unstarted'][] = $c_info;
             }
         }
-
-        $rs->close();
+        $rs->close(); // after loop, close rs
 
         // Loop through course status groups
         foreach ($courses as $type => $infos) {
index a1f946f..a05c20e 100644 (file)
@@ -194,7 +194,9 @@ function send_welcome_messages($orderdata) {
              WHERE e.id IN(" . implode(',', $orderdata) . ")
           ORDER BY e.userid";
 
-    if (!$rs = $DB->get_recordset_sql($sql)) {
+    $rs = $DB->get_recordset_sql($sql);
+    if (!$rs->valid()) {
+        $rs->close(); // Not going to iterate (but exit), close rs
         return;
     }
 
@@ -247,7 +249,7 @@ function send_welcome_messages($orderdata) {
         }
         while ($ei);
 
-        $rs->close();
+        $rs->close(); // end of iteration, close rs
     }
 }