Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql_data_seek équivalent pdo

La réponse habituelle est :vos données recherchent-elles directement dans le tableau PDOStatement::fetchAll ... Mais c'est FAUX SI la requête récupère beaucoup de données (!).

Il existe 2 vraies solutions,

1) si la base de données le permet, utilisez PDO::FETCH_ORI_ABS ou PDO::FETCH_ORI_REL ,exemple,

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

(EDIT) Mais, comme commenté par @ChoiZ, ayez une limitation PDO-MySQL :"MySQL ne prend pas en charge les curseurs " (dehors programmes stockés) "et le pilote ne peut pas les émuler pour vous"... Essayez plus tard ou avec les fourches de MySQL, comme MariaDB.

2) utiliser la solution de base de données (une sorte de pagination). Exemple :

SELECT a, b FROM table LIMIT 1, 973