2013-02-22 9 views
5

Ho un sito di base con un ospite e come di recente è apparso a hanno smesso di funzionare il comando mysqli_fetch_all ricevo il messaggio:mysqli_fetch_all smesso di funzionare su PHP 5.4.11

Fatal error: Call to undefined function mysqli_fetch_all() in file at line where function is used 

ho rotolato indietro i file sul server per un set che conosco lavoro e ancora mi imbatto nello stesso problema anche se la pagina è in esecuzione PHP5.4+.

Non riesco a capire perché questo ha improvvisamente smesso di funzionare. Offline, usando XAMPP, il comando mysqli_fetch_all funziona perfettamente e quindi il problema non sembra essere con il DB o il codice. Preferirei non riscrivere numerose pagine con un ciclo while per un motivo sconosciuto.

Si tratta di un problema con l'host del server? Qualsiasi aiuto sarebbe più apprezzato.

+0

qual è la versione php di XAMPP? Questo potrebbe aiutare: http: //stackoverflow.com/questions/6694437/mysqli-fetch-all-not-a-valid-function – meWantToLearn

+0

XAMPP è in esecuzione 5.4.7 mentre l'host è in esecuzione 5.4.11 recuperato utilizzando phpversion() Poiché la funzione dovrebbe andare bene con PHP 5.3+, questo comportamento sembra insolito. – mjbk88

+0

La funzione è disponibile solo con il driver mysqlnd. L'host potrebbe utilizzare il driver mysql precedente. –

risposta

4

Ci sono due modi l'estensione MySQLi può essere compilato:

  1. Collegando contro libreria client di MySQL
  2. Compilando contro il driver nativo di MySQL che è fornito in bundle con php (mysqlnd)

mysqli_fetch_all() è disponibile solo nel secondo caso, vedi http://php.net/mysqli_fetch_all

lo consiglio per evitare tale mysqlnd -solo funzioni per ragioni di compatibilità. Se la compatibilità non è un problema per te e hai un disperato bisogno di questa funzione, devi ricompilare php --with-mysqli=mysqlnd.

+0

Raccomanderei di evitare un'estensione così incerta e passare al PDO –

+1

Grazie per l'aiuto: un aggiornamento del server ha rimosso la funzionalità del comando, quindi sto utilizzando un loop più compatibile per fare lo stesso lavoro. – mjbk88

Problemi correlati