sql >> Base de Datos >  >> RDS >> Mysql

mysql_data_seek pdo equivalente

La respuesta habitual es:sus datos buscan directamente en la matriz PDOStatement::fetchAll ... Pero es INCORRECTO SI la consulta obtiene muchos datos (!).

Hay 2 soluciones reales,

1) si la base de datos lo permite, use PDO::FETCH_ORI_ABS o PDO::FETCH_ORI_REL ,ejemplo,

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

(EDITAR) Pero, como comentó @ChoiZ, tiene una limitación de PDO-MySQL :"MySQL no admite cursores " (afuera programas almacenados) "y el controlador no puede emularlos por usted"... Intente más tarde o con las bifurcaciones de MySQL, como MariaDB.

2) use la solución de la base de datos (una especie de paginación). Ejemplo:

SELECT a, b FROM table LIMIT 1, 973