Hallo,
ich möchte eine CSV-Datei von einer externen Quelle in MySQL importieren. Dies klappt auch ganz gut, nur das vorherige Leeren der DB und das Entfernen der Texttrenner " bereiten mir Probleme.
Bevor ich die CSV-Datei einlese wollte ich gern per Script die entsprechende MySQL-Tabelle leeren.
Wird auch gemacht, nur kann ich einfach nicht herausfinden warum dann nur noch der letzte Datensatz aus der CSV-Datei abgespeichert wird.
Das Löschen der Texttrenner
habe ich zwar mit den ersten Feldern versucht, klappt aber nicht. In der MySQL stehen Sie weiterhin so, wie nachfolgendes Beispiel, mit Anführungszeichen im DB-Feld
"dies ist mein DB-Text".
Hier der php-code
Was mache ich falsch?
Vielen Dank für die Hilfe
mfg
Julia
ich möchte eine CSV-Datei von einer externen Quelle in MySQL importieren. Dies klappt auch ganz gut, nur das vorherige Leeren der DB und das Entfernen der Texttrenner " bereiten mir Probleme.
Bevor ich die CSV-Datei einlese wollte ich gern per Script die entsprechende MySQL-Tabelle leeren.
Wird auch gemacht, nur kann ich einfach nicht herausfinden warum dann nur noch der letzte Datensatz aus der CSV-Datei abgespeichert wird.
Das Löschen der Texttrenner
PHP:
$my_array[1] = str_replace('"', '\"', $my_array[1]);
"dies ist mein DB-Text".
Hier der php-code
PHP:
<?php
$fp = @fopen("http://www.meine-seite.de/test/csv15a.csv", "r") or die ("Kann Datei nicht lesen.");
while ($line = fgets($fp, 1024)) {
$my_array = explode('|',$line,30);
$Link=mysql_connect("localhost","xxx","xxx") or die (mysql_error());
mysql_select_db("xxmeine_dbxx");
$db = "xxmeine_dbxx";
$table = "xxmeine_tabellexx";
// Hier das vorherige Leeren in der MySQL
mysql_select_db($db,$Link) or die (mysql_error());
$query = "TRUNCATE `xxmeine_tabellexx`";
$ergebnis=mysql_query($query) or die (mysql_error());
// Hier mein Versuch die Texttrenner zu entfernen
$my_array[4] = str_replace('"', '\"', $my_array[4]);
$my_array[3] = str_replace('"', '\"', $my_array[3]);
$my_array[2] = str_replace('"', '\"', $my_array[2]);
$my_array[1] = str_replace('"', '\"', $my_array[1]);
$my_array[0] = str_replace('"', '\"', $my_array[0]);
$sql = "INSERT INTO xxmeine_tabellexx SET f20='$my_array[20]',
f19='$my_array[19]',
f18='$my_array[18]',
f17='$my_array[17]',
f16='$my_array[16]',
f15='$my_array[15]',
f14='$my_array[14]',
f13='$my_array[13]',
f12='$my_array[12]',
f11='$my_array[11]',
f10='$my_array[10]',
f09='$my_array[9]',
f08='$my_array[8]',
f07='$my_array[7]',
f06='$my_array[6]',
f05='$my_array[5]',
f04='$my_array[4]',
f03='$my_array[3]',
f02='$my_array[2]',
f01='$my_array[1]',
f0='$my_array[0]';";
if( mysql_query($sql)){
echo "Eingetragen! ";
echo $my_array[4]."<br>";
}
}
fclose($fp);
?>
Was mache ich falsch?
Vielen Dank für die Hilfe
mfg
Julia