Спросили давным-давно, но в настоящее время есть другое решение.
Метод PDOStatement::fetch()
может получить второй параметр, ориентацию курсора, с одной из PDO::FETCH_ORI_*
констант. Эти параметры действительны только если PDOStatement
созданы с атрибутом PDO::ATTR_CURSOR
как PDO::CURSOR_SCROLL
.
Таким образом, вы можете перемещаться следующим образом.
$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 .
Примечание: используется PDO::FETCH_BOTH
, потому что это значение по умолчанию, просто настройте его для своего проекта.