Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql_data_seek PDO-Äquivalent

Die übliche Antwort lautet:Suchen Sie Ihre Daten direkt im Array PDOStatement::fetchAll ... Aber es ist FALSCH, WENN die Abfrage viele Daten (!) liefert.

Es gibt 2 echte Lösungen,

1) Wenn die Datenbank es zulässt, verwenden Sie PDO::FETCH_ORI_ABS oder PDO::FETCH_ORI_REL ,Beispiel,

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

(BEARBEITEN) Aber, wie von @ChoiZ kommentiert, haben Sie eine PDO-MySQL-Einschränkung :"MySQL unterstützt keine Cursor " (draußen gespeicherte Programme) "und der Treiber kann sie nicht für Sie emulieren"... Versuchen Sie es später oder mit MySQL-Forks, wie MariaDB.

2) Verwenden Sie die Datenbanklösung (eine Art Paginierung). Beispiel:

SELECT a, b FROM table LIMIT 1, 973