LOAD DATA INFILE funktioniert nicht

Kalito

Erfahrenes Mitglied
Hallo,

ich möchte eine CSV - Datei auf eine MYSQL-Datenbank importieren.

DIE CSV sieht so aus:

Code:
program_id;program_name;product_id;product_name
3943;program1;49684;product1				
3943;program1;66494;product2



HIerzu mein PHP-CODE:
PHP:
<?php
  $server = 'localhost';
  $user = 'root';
  $passwort = '';
  $database = 'testdb';
  $file = 'test.csv';


  mysql_connect($server, $user, $passwort) or die ("Keine Verbindung m&ouml;glich");
  mysql_select_db($database)   or die ("Die Datenbank existiert nicht");


   $sql = "LOAD DATA LOCAL INFILE '$file' INTO TABLE datenfeed FIELDS TERMINATED BY '\,' ENCLOSED BY '\"' LINES TERMINATED BY '\n';";
   $ergebnis = mysql_query($sql);
?>

Wenn ich diese php ausführe kommt keine Fehlermeldung, aber die Tabelle bleibt auch leer, obwohl ich die Tabelle mit Ihren Spalten schon erstellt habe.
Momentan probiere ich es noch mit phpmyadmin, aber ich möchte es mittels php den upload realisieren und nicht mit der Importfunktion von phpmyadmin.

Hoffe Ihr habt eine Idee.

Gruß, Patrick
 
HAb es erstmal soweit hinbekommen

Danke an Sven Mintel

Hier der Code
PHP:
<?php
 $server = 'localhost';
 $user = 'root';
 $passwort = '';
 $database = 'testdb';
 $file = 'C:/xampp/htdocs/test.csv';

 $verbindung = mysql_connect($server, $user, $passwort) or die ("Keine Verbindung m&ouml;glich");

       if($verbindung){
          mysql_select_db($database)   or die ("Die Datenbank existiert nicht");

          $sql =  "LOAD DATA LOCAL INFILE '$file'
                   INTO TABLE datenfeed
                   FIELDS TERMINATED BY ';'
                   ENCLOSED BY ''
                   LINES TERMINATED BY ';' ";

                   echo mysql_error();

          if($sql){
                 $ergebnis = mysql_query($sql);
                 echo mysql_error();
          }
        }
?>

Nur jetzt hab ich noch folgende Probleme. Wenn ich die 1. Zeile bei der CSV lasse, dann speichert die PHP die csv in einer Zeile in die Datenbank, so das die Werte nicht zu den Spalten passen. Wenn ich die 1. Zeile aber von mir aus lösche, dann stimmen die Werte, aber bei einer Spalte, wo der Wert immer gleich ist, wird der Wert der 1. Zeile angezeigt, die restlichen Werte in der Spalte werden auf Null gesetzt.
 
wenn ich dich richtig verstehe dürfte folgendes helfen:

LINES TERMINATED BY '\n'
IGNORE 1 LINES ()

oder \r\n bei windows dateien, mit IGNOR X LINES werden die ersten X linien übersprungen
 

Neue Beiträge

Zurück