Sto riscontrando seri problemi con le funzioni dell'oggetto dati PHP. Sto cercando di eseguire il ciclo di un set di risultati considerevole (~ 60k righe, ~ 1gig) utilizzando una query memorizzata nel buffer per evitare di recuperare l'intero set.PHP PDO Buffered query problem
Non importa quello che faccio, lo script si blocca solo sul PDO :: query() - sembra che la query sia in esecuzione unbuffered (perché altrimenti il cambiamento nella dimensione del set di risultati 'corregge' il problema?). Ecco il mio codice per riprodurre il problema:
Se limito la domanda con un certo numero ragionevole, funziona benissimo:
$rQuery = $Database->query('SELECT id FROM mytable LIMIT 10');
Ho provato a giocare con PDO :: MYSQL_ATTR_MAX_BUFFER_SIZE e dell'uso della DOP :: prepare() e PDO :: execute() pure (sebbene non ci siano parametri nella query precedente), entrambi senza alcun risultato. Qualsiasi aiuto sarebbe apprezzato.
Wow bene che sono un idiota . Non so cosa mi ha dato l'impressione opposta. – Stewart
Tecnicamente, una query "bufferizzata" significa che la libreria client MySQL estrae l'intero set di risultati dallo stream TCP prima di restituirla all'utente. – staticsan
Hmm, pensavo che il manuale coprisse la differenza tra buffered/unbuffered (stile mysql) e fetch/fetchAll (stile PDO), ma guardando di nuovo no. Se si desiderano ulteriori informazioni di base, è possibile trovare le seguenti informazioni utili: http://netevil.org/blog/2008/06/slides-pdo –