PHP, Mysql e "The used command is not allowed with this MySQL version"
Inserito Gio,
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 versionMentre 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

Commenti
Non ci sono ancora commenti.
Lascia un commento
Il tuo indirizzo email non sarà pubblicato. I commenti vengono pubblicati dopo la moderazione.