问很久以前,但目前还有另一种解决方案。
方法PDOStatement::fetch()
可以接收第二参数,即光标方向,其中一个参数为PDO::FETCH_ORI_*
常数中的一个。这些参数仅在PDOStatement
使用属性PDO::ATTR_CURSOR
作为PDO::CURSOR_SCROLL
创建时才有效。
这样你可以导航如下。在docs和PDO predefined constants
$sql = "Select * From Tabela";
$statement = $db->prepare($sql, array(
PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL,
));
$statement->execute();
$statement->fetch(PDO::FETCH_BOTH, PDO::FETCH_ORI_NEXT); // return next
$statement->fetch(PDO::FETCH_BOTH, PDO::FETCH_ORI_PRIOR); // return previous
$statement->fetch(PDO::FETCH_BOTH, PDO::FETCH_ORI_FIRST); // return first
$statement->fetch(PDO::FETCH_BOTH, PDO::FETCH_ORI_LAST); // return last
$statement->fetch(PDO::FETCH_BOTH, PDO::FETCH_ORI_ABS, $n); // return to $n position
$statement->fetch(PDO::FETCH_BOTH, PDO::FETCH_ORI_REL, $n); // return to $n position relative to current
更多信息。
注意:使用PDO::FETCH_BOTH
因为是默认值,只需为您的项目自定义它。
PdoStatement已经实现了Traversable – troelskn 2008-11-10 18:07:15