Próbuję załadować plik csv do mojej bazy danych mysql z kodu php. Pojawia się błąd: „Nie można zaktualizować: użyte polecenie nie jest dozwolone w tej wersji MySQL”
To jest kod, którego używam. Czy muszę udzielać jakichkolwiek zezwoleń, aby móc to zrobić z formularzy php.? Ponieważ jestem w stanie załadować ten sam plik csv z mysql bezpośrednio z terminala.
P.S.: - Po przeczytaniu tego wpisu zmieniłem plik.cnf. MySQL: Włącz LOAD DATA LOCAL INFILE
Jakkolwiek nie mogę przesłać z phpmyadmin i formularzy php. Komunikat o błędzie jest taki sam. to znaczy „Nie można zaktualizować: użyte polecenie nie jest dozwolone w tej wersji MySQL”
Poniżej znajduje się fragment kodu.
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>";}
Odpowiedzi:
0 dla odpowiedzi № 1Gdyby LOAD DATA LOCAL
jest wyłączony na serwerze lub kliencie, klient, który próbuje wydać takie oświadczenie, otrzymuje następujący komunikat o błędzie:
ERROR 1148: The used command is not allowed with this MySQL version
Spróbuj uruchomić poniżej w systemie UNIX
mysql_fix_privilege_tables --password=root_password
lub jeśli Windows
C:> cd "C:Program FilesMySQLMySQL Server 5.0"
C:> binmysql -u root -p mysql
mysql> SOURCE share/mysql_fix_privilege_tables.sql