The only thing I can notice is that a do loop on the iterator and adding a return in front of your call to next in the method would reduce the number of calls to current() and valid() by n-1.
if($iterator->valid()) {
$item =& $iterator->current();
do {
//stuff
} while($item =& $iterator->next());
}
I don't really like do while loops though.
One other thing (you can tell I'm scrapping the barrell on things to pick up on but I've got to find something), in terms of looking through mysql's show full processlist output and query logs it's much easier to look at queries that were input on one line. For that reason I tend to do query string like this
$item = $this->sql->sqlGetSet(
"SELECT i.ID, i.ITEM_NAME, ".
"i.ITEM_DESC, i.ITEM_PRICE ".
"FROM items AS i ".
"WHERE i.ID = '".$id."'"
);
but to be honest these are pinickety points.
Oh, one other thing, what made you go off PHP5? 😕