Tom: CSV -> Array -> SQL

Beitrag lesen

Hello,

$handle = fopen ("uploads/haendler_deutschland.csv","r");

$row = 0;

while ($data = fgetcsv ($handle, 1000, ";"))
{

$row++;
     echo "<p>Zeile: $row, Spalten: ".count($data);

$query = "INSERT INTO brd(id, name, strasse, plz) VALUES('', '".$data[1]."', '".$data[2]."', '".$data[3]."')";
    $result = mysql_query($query) or die("Invalid query: " . mysql_error().__LINE__.__FILE__);

echo ", Ergebnis ".( ($result===false) ? 'Fehler' : 'Ok')."</p>";

}
fclose ($handle);

Das sollte Die erstmal helfen, die Geschichte zu debuggen.

  • Wie sind denn leere Spalten in deiner CSV-Datei dargestellt?
  • Enthalten Deine Feldwerte ggf. das Feldtrennzeichen, also hier Semikolon?

Dun nutzt CSV nicht sicher. Dazu müsstest Du auch Feldbegrenzer verwenden und berücksichtigen.
Anderenfalls würden Umbrüche, Feldtrenner und Feldbegrenzer in Datenwerten immer Schwierigkeiten machen. Aus diesem Grunde solltest Du dann auch mysql_real_escape_string() noch verwenden, um den Wert für die DB vorzubereiten.

Harzliche Grüße
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau