Đã hỏi một thời gian dài trước đây nhưng hiện có giải pháp khác.
Phương thức PDOStatement::fetch()
có thể nhận tham số thứ hai, hướng con trỏ, với một trong số PDO::FETCH_ORI_*
hằng số. Các tham số này chỉ hợp lệ nếu PDOStatement
được tạo với thuộc tính PDO::ATTR_CURSOR
là PDO::CURSOR_SCROLL
.
Bằng cách này, bạn có thể điều hướng như sau.
$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
Thông tin thêm trong docs và PDO predefined constants.
Lưu ý: sử dụng PDO::FETCH_BOTH
vì là mặc định, chỉ cần tùy chỉnh nó cho dự án của bạn.
Nguồn
2016-08-10 14:52:14
PdoStatement đã triển khai Traversable – troelskn