Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > PHP:PDO fetch + offset не работает


Автор: mgukov 18.5.2011, 23:46
Почему-то не получается указать смещение при вытаскивании данных из запроса с помощью PDO, субд - postgresql 9.

Пример с php.net, немного переделанный
Код

<?php
function readDataForwards($dbh) {
  $sql = 'SELECT * FROM m';
  try {
     // тип курсора scollable
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    $stmt->execute();
    
     // указываем смещение = 40
    $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT, 40); 
    for($i = 0; $i < 100; ++$i) {
      $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT); 
      $data = $row[0] . "\t" . $row[1] . "\t";
      print $data;
    }
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}


$conn = new \PDO("pgsql:dbname=db;host=localhost;port=5432", "user", "pass");

print "Reading forwards:\n";
readDataForwards($conn);

Всего строк в таблице > 20000.
Однако, почему-то, данные берутся без смещения, с первой строки, не поуйму в чем дело

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)