J'essaye de télécharger un fichier csv dans ma base de données mysql à partir de code php. Je reçois une erreur: "Impossible de mettre à jour: la commande utilisée n'est pas autorisée avec cette version de MySQL"
C'est le code que j'utilise. Dois-je donner des autorisations pour pouvoir le faire à partir de formulaires php? Comme je suis capable de charger ce même fichier csv de mysql directement depuis le terminal.
P.S.:- J'ai changé le fichier my.cnf après avoir lu ce post. MySQL: Activer LOFT DATA LOCAL INFILE
Cependant, je ne parviens pas à télécharger depuis phpmyadmin et depuis les formulaires php. Le message d'erreur est identique. c'est à dire. "Impossible de mettre à jour: la commande utilisée n'est pas autorisée avec cette version de MySQL"
Ci-dessous, le morceau de code.
if(@$_POST["submit"])
{
$file = $_FILES["file"];
$name = $file["name"];
$type = $file["type"];
$size = $file["size"];
$tmppath = $file["tmp_name"];
echo "Name of the file is $name <br> $tmppath";
if($name!="")
{
echo "<br> Trying to upload file <br>";
if(move_uploaded_file($tmppath, "csvfiles/.$name")) //project is a folder in which you will save csv files
{
$query="LOAD DATA LOCAL INFILE "$tmppath" INTO TABLE test.metadata FIELDS TERMINATED BY ";" LINES TERMINATED BY "n" IGNORE 1 LINES;";
mysql_query ($query) or die ("Could not updated:".mysql_error());
echo "CSV file inserted successfully !!<br>";
}else {echo "<br>Failed !!!!";}
}else {echo "<br>No file exist <br>";}
}else {echo " <br> No file exist <br>";}
Réponses:
0 pour la réponse № 1Si LOAD DATA LOCAL
est désactivé, que ce soit sur le serveur ou sur le client, un client qui tente d'émettre une telle instruction reçoit le message d'erreur suivant:
ERROR 1148: The used command is not allowed with this MySQL version
Essayez de courir ci-dessous dans si UNIX
mysql_fix_privilege_tables --password=root_password
ou si fenêtres
C:> cd "C:Program FilesMySQLMySQL Server 5.0"
C:> binmysql -u root -p mysql
mysql> SOURCE share/mysql_fix_privilege_tables.sql