Tengo algunos problemas graves con las funciones de objetos de datos de PHP. Estoy intentando recorrer un conjunto de resultados considerable (~ 60k filas, ~ 1gig) usando una consulta almacenada para evitar recuperar todo el conjunto.Problema con la consulta de PHP PDO
No importa lo que haga, la secuencia de comandos simplemente cuelga en PDO :: query() - parece que la consulta se está ejecutando sin búfer (¿por qué el cambio en el tamaño del conjunto de resultados 'solucionó' el problema?). Aquí está mi código para reproducir el problema:
Si puedo limitar la consulta con un número razonable, que trabaja muy bien:
$rQuery = $Database->query('SELECT id FROM mytable LIMIT 10');
He intentado jugar con PDO :: MYSQL_ATTR_MAX_BUFFER_SIZE y el uso de la DOP :: prepare() y PDO :: execute() también (aunque no hay parámetros en la consulta anterior), ambos en vano. Cualquier ayuda sería apreciada.
Wow bien que soy un idiota . No sé lo que me dio la impresión contraria. – Stewart
Técnicamente, una consulta "almacenada en el búfer" significa que la biblioteca del cliente MySQL extrae todo el conjunto de resultados de la transmisión TCP antes de devolvérselo. – staticsan
Hmm, pensé que el manual cubría la diferencia entre el búfer/sin búfer (estilo mysql) y fetch/fetchAll (estilo PDO), pero mirando de nuevo no es así. Si desea obtener más información de antecedentes, puede encontrar la siguiente información útil: http://netevil.org/blog/2008/06/slides-pdo –