Mysql
 sql >> Database >  >> RDS >> Mysql

mysql_data_seek pdo equivalente

La solita risposta è:i tuoi dati cercano direttamente nell'array PDOStatement::fetchAll ... Ma è SBAGLIATO SE la query recupera molti dati (!).

Ci sono 2 soluzioni reali,

1) se il database lo consente utilizzare PDO::FETCH_ORI_ABS o PDO::FETCH_ORI_REL ,esempio,

$result = $sth->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 973);

(EDIT) Ma, come commentato da @ChoiZ, avere una Limitazione PDO-MySQL :"MySQL non supporta cursors " (fuori programmi memorizzati) "e il driver non può emularli per te"... Prova più tardi o con i fork di MySQL, come MariaDB.

2) utilizzare la soluzione del database (una sorta di impaginazione). Esempio:

SELECT a, b FROM table LIMIT 1, 973