Hi,
ich habe folgendes Problem:
Ich will eine csv-Datei über den Browser von meinem lokalen Rechner hochladen und diese in die mysql-Datenbank importieren. Mit dem folgenden Formular lade ich die Datei:
Der Import-Versuch erfolgte mit diesem Code:
Sorry für die Darstellung als Zitat, aber die Ansicht als php-Code verschluckt einige \. Und das ist wohl auch genau mein Problem.
Zur Erklärung: Der Upload der Datei funktioniert einwandfrei. Das sql1-Statement funktioniert auch einwandfrei. Das gleiche gilt für das sql-Statement, wenn ich den auskommentierten Teil "$datei" wieder aktiviere. Aber es geht absolut nicht, wenn ich mit $datei den String aus $_FILES übergebe, also so, wie es jetzt dort steht. Ich bekomme keine Fehlermeldung, aber die Daten werden nicht in die DB eingefügt. Was mache ich falsch? Danke für die Hilfe!
Als Umgebung nutze ich XAMPP auf einem "Server" im LAN.
Gruß,
Christian
ich habe folgendes Problem:
Ich will eine csv-Datei über den Browser von meinem lokalen Rechner hochladen und diese in die mysql-Datenbank importieren. Mit dem folgenden Formular lade ich die Datei:
PHP-Code:
if ($_POST["sent"]!=1)
{
echo "Personen aus csv-Datei importieren";
echo "<form name=\"form1\" method=\"post\" enctype=\"multipart/form-data\"
action=\"".$php_self."\">";
echo "<input name=\"datei\" type=\"file\">";
echo "<input type=\"hidden\" name=\"sent\" value=\"1\">";
echo "<input type=\"submit\" name=\"Submit\" value=\"Speichern\">";
}
if ($_POST["sent"]==1)
{
$datei=$_FILES["datei"]["tmp_name"];
echo $datei;
copy($datei,"test.csv"); //funktioniert
//$datei="D:\\\\XAMPP1.5.0\\\\xampp\\\\tmp\\\\telefon.csv"; //funktioniert
$sql1 = 'LOAD DATA LOCAL INFILE \'D:\\\\XAMPP1.5.0\\\\xampp\\\\tmp\\\\telefon.csv\'
INTO TABLE `user` FIELDS TERMINATED BY \';\' ENCLOSED BY \'"\'
ESCAPED BY \'\\\\\' LINES TERMINATED BY \'\\r\\n\'';//funktioniert
$sql = "LOAD DATA LOCAL INFILE '$datei'
INTO TABLE `user` FIELDS TERMINATED BY ',' ESCAPED BY '\\\\' ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n'";
$eintrag=mysql_query($sql);
echo "Datei wurde importiert";
}
{
$datei=$_FILES["datei"]["tmp_name"];
echo $datei;
copy($datei,"test.csv"); //funktioniert
//$datei="D:\\\\XAMPP1.5.0\\\\xampp\\\\tmp\\\\telefon.csv"; //funktioniert
$sql1 = 'LOAD DATA LOCAL INFILE \'D:\\\\XAMPP1.5.0\\\\xampp\\\\tmp\\\\telefon.csv\'
INTO TABLE `user` FIELDS TERMINATED BY \';\' ENCLOSED BY \'"\'
ESCAPED BY \'\\\\\' LINES TERMINATED BY \'\\r\\n\'';//funktioniert
$sql = "LOAD DATA LOCAL INFILE '$datei'
INTO TABLE `user` FIELDS TERMINATED BY ',' ESCAPED BY '\\\\' ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n'";
$eintrag=mysql_query($sql);
echo "Datei wurde importiert";
}
Zur Erklärung: Der Upload der Datei funktioniert einwandfrei. Das sql1-Statement funktioniert auch einwandfrei. Das gleiche gilt für das sql-Statement, wenn ich den auskommentierten Teil "$datei" wieder aktiviere. Aber es geht absolut nicht, wenn ich mit $datei den String aus $_FILES übergebe, also so, wie es jetzt dort steht. Ich bekomme keine Fehlermeldung, aber die Daten werden nicht in die DB eingefügt. Was mache ich falsch? Danke für die Hilfe!
Als Umgebung nutze ich XAMPP auf einem "Server" im LAN.
Gruß,
Christian
Kommentar