2 // This file is part of Moodle - http://moodle.org/
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
21 * @copyright 2008 Petr Skoda (http://skodak.org)
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25 defined('MOODLE_INTERNAL') ||
die();
28 * Abstract class for resultsets returned from database functions.
29 * This is a simple Iterator with needed recorset closing support.
31 * The difference from old recorset is that the records are returned
32 * as objects, not arrays. You should use "foreach ($recordset as $record) {}"
33 * followed by "$recordset->close()".
35 * Do not forget to close all recordsets when they are not needed anymore!
37 abstract class moodle_recordset
implements Iterator
{
40 * Returns current record - fields as object properties, lowercase
43 //public abstract function current();
46 * Returns the key of current row
47 * @return int current row
49 //public abstract function key();
52 * Moves forward to next row
55 //public abstract function next();
58 * Rewinds are not supported!
61 public function rewind() {
62 // no seeking, sorry - let's ignore it ;-)
67 * Did we reach the end?
70 //public abstract function valid();
73 * Free resources and connections, recordset can not be used anymore.
76 public abstract function close();