public function next()
{
if ($this->_iterating === true) {
$this->_iterating = $this->selectQuery();
$this->_iterating->stmt = null;
$this->_iterating->rewind();
$this->hook('beforeLoad', array($this->_iterating));
}
$this->_iterating->next();
$this->data = $this->_iterating->current();
if ($this->data === false) {
$this->unload();
$this->_iterating = false;
return;
}
$this->id = @$this->data[$this->id_field];
$this->dirty = array();
$this->hook('afterLoad');
}