uncaught mysqli_stmt mysqli_result mysqli_fetch_all method fatal error php mysqli fetchall mysqlnd

php - mysqli_stmt - uncaught error call to undefined method mysqli_result:: fetch() in



Error grave: llamada a un método no definido mysqli_result:: fetch_all() (3)

Tengo problemas con PHP en Ubuntu 10.04. Cuando intento usar mysqli_result :: fetch_all aparece este error:

Llamada al método no definido mysqli_result :: fetch_all ()

Sin embargo, funciona en Windows XP.

El código:

$result = $this->dbh->query(''SELECT [...] ''); return $result->fetch_all(MYSQLI_ASSOC);

No quiero usar fetch_assoc con un bucle porque envío el resultado a otra capa para su procesamiento.

Estoy usando PHP 5.4.4. y con php -m | grep mysql el módulo mysqlnd no aparece. ¿Cómo puedo instalarlo? ¿Podría ser el problema?


mysqli_result :: fetch_all () requiere el controlador nativo de MySQL (mysqlnd).

lo más probable es que te lo estés perdiendo.

Echa un vistazo a estos mensajes, que podrían ayudarte.

mysqli fetch_all () no es una función válida?


fetch_all consume más memoria que fetch_array () y tiene otros efectos secundarios perjudiciales, por lo que se prefieren fetch_array / fetch_assoc.

Detallado de la documentación de PHP:

Disponible solo con mysqlnd.

Como mysqli_fetch_all () devuelve todas las filas como una matriz en un solo paso, puede consumir más memoria que algunas funciones similares, como mysqli_fetch_array (), que solo devuelve una fila a la vez del conjunto de resultados. Además, si necesita iterar sobre el conjunto de resultados, necesitará una construcción de bucle que afectará aún más el rendimiento. Por estas razones, mysqli_fetch_all () solo debe usarse en aquellas situaciones en las que el conjunto de resultados obtenidos se enviará a otra capa para su procesamiento.

Si realmente desea usarlo, debe instalar mySQL con una unidad nativa (mysqlnd) Ejemplo de instalación:

./configure --with-mysql=mysqlnd / --with-mysqli=mysqlnd / --with-pdo-mysql=mysqlnd /

En Ubuntu solo puedes hacer

sudo apt-get install php5-mysqlnd