Например, у меня есть таблица с двумя полями: id, value. Я вставил в эту таблицу почти 100 тыс. Строк.
Я хочу использовать прокручиваемый курсор. Я написал следующий код:
<?php ... $sql = 'SELECT id FROM cursor_test;'; $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL)); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 3); var_dump($row['id']); // 1, expected value is 3
Что я делаю не так?
Кажется, что mysql не поддерживает прокручиваемые курсоры.
https://bugs.php.net/bug.php?id=34625
http://www.php.net/manual/en/pdostatement.fetch.php#105277
Будет ли PDO laststatment-> fetchAll (PDO :: FETCH_COLUMN, столбец $) повторно запускать запрос на каждый вызов?