Obtengo un error realmente extraño, inútil y totalmente aleatorio cuando obtengo filas de un recurso (consulta) usando PHP.Extraño error de MySQL "Empty row packet body" cuando se usa mysql_fetch_object (PHP 5.3.3)
Mi máquina de desarrollo es un Windows XP SP3 con Apache 2.2 mientras que MySQL se ejecuta en una máquina virtual, usando ubuntu 10.04, con 768mb de ram, 100GB de HDD y 4 núcleos lógicos (Intel q6600). Sin embargo, este problema no está relacionado con PHP en Windows porque obtengo el mismo error cuando ejecuto el código en la máquina de la base de datos.
estoy usando mysql
extensión (no mysqli
o mysqlnd
), pero mirando a su alrededor fundé un parche con respecto a este error relacionado con mysqlnd extensión, por lo que, probablemente, debería intentarlo.
El problema principal es que cuando ejecuto esta consulta (una consulta realmente grande con un par de tablas derivadas y más de 20 uniones) y proceso los resultados rápidamente y todo va bien, pero cuando mi código gastó alrededor de 15/20 segundos para procesar un bloque de filas (necesito construir un objeto a partir de un bloque de filas vinculadas de una manera muy particular entre ellos, no puedo cambiar esto, la base de datos no es mía, y hacer un PDF de este objeto) después de un tiempo (tiempo aleatorio) Recibo este error "Empty row packet body".
Uso las consultas sin búfer para reducir el consumo de memoria (si habilito el almacenamiento en búfer recibo alrededor de 260MB de memoria usada) pero este no debería ser el problema.
¿Puedes mostrar algún código? ¿Cuáles son tus tiempos de espera de comando establecidos? – Fosco
el problema no está relacionado con los tiempos de espera o el límite de memoria porque he desactivado el primero y configuré un valor muy muy alto el segundo –
Donde trabajo desarrollamos usando un Apache 2.2/PHP 5.3.3 local en un Windows XP Pro SP3 también, y un servidor de base de datos de prueba compartida, y obtenemos este error todo el tiempo. SIN EMBARGO, la configuración compartida de Apache/Linux, cuyas versiones no conozco, no da este error, por lo que esto podría sugerir que el problema podría ser causado por la versión de Apache o algo así en lugar de la configuración de la base de datos o el uso. –