Problema: in uno script PHP cerchiamo di eseguire il comando mysql: "LOAD DATA LOCAL INFILE ..."
(Quindi in genere cerchiamo di importare un file csv in una tabella mysql dal file system locale).
Lo script si blocca con un errore:
The used command is not allowed with this MySQL version
Mentre se proviamo a fare lo stesso comando direttamente da una shell Mysql funziona tutto (se non è così il problema è da cercarsi nella configurazione generale mysql).
Il problema è dovuto al fatto che la connessione a Mysql non specifica l'abilitazione dei LOCAL_FILES.
Per abilitarla direttamente va usato il flag "128" al comando mysql_connect o mysql_pconnect.
Esempio
mysql_pconnect($hostname, $username, $password, 128);
Il Flag 128 nelle costanti dei sorgenti della libreria mysql per PHP identifica:
#define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */
Ho trovato la costante qui:
http://www.php.net/manual/en/mysql.constants.php#mysql.client-flags
Aggiungi un commento