Daten in Datenbank einlesen
fr@gma
- php
Ich habe hier ein Problem und komme echt nicht weiter.
Und zwar habe ich eine Sicherungsdatei (.txt) in der alle Datensätze mit dem Trennseperator "§" getrennt sind und die verschiedenen Datenblöcke stehen zeilenweise untereinander.
also etwa:
name§nachname§ort
name1§nachname1§ort1
Nun möchte ich die Daten mittel folgenden Quellcode wieder in die Datenbank lesen, geht aber nicht ...
$datenbank="test";
$tabelle="test";
$db=@mysql_connect() or die ("keine Verbidung zur Datenbank");
@mysql_select_db($datenbank, $db) or die ("keine Verbindung zur Datenbank");
$daten = file($userfile);
for($b=0; $b<count($daten); $b++)
{
$dat= explode("§",$daten[$b]);
$sql="INSERT INTO ".$tabelle."(anrede, vorname, name, ort) VALUES (";
for($c=0; $c<count($dat)-1; $c++)
{
$sql.="'".$dat[$c]."', ";
}
$sql.="'".$dat[$c]."');";
$res= mysql_query($sql, $db);
echo $sql . "<br><br>";
}
mysql_close($db);
if($res)
{
echo "Schreiben abgeschlossen";
}
else
{
echo "Bei dem Versuch, in die Tabelle zu schreiben ist ein Fehler aufgetreten: <br>\nFehler-Nummer:
<b>".mysql_errno($db)."</b><br>\Fehler-Ausgabe:
<br>".mysql_error($db)."</b>";
}
}
kann mir vielleicht mal jemand sagen wo der Fehler liegt?
Fehlermeldung:
Warning: 1 is not a valid MySQL-Link resource in test.php on line 78
Warning: 1 is not a valid MySQL-Link resource in test.php on line 79
Bei dem Versuch, in die Tabelle zu schreiben ist ein Fehler aufgetreten:
Hallo fr@gma!
Nun möchte ich die Daten mittel folgenden Quellcode wieder in die Datenbank lesen, geht aber nicht ...
[viel Müll]
kann mir vielleicht mal jemand sagen wo der Fehler liegt?
Fehlermeldung:
Warning: 1 is not a valid MySQL-Link resource in test.php on line 78Warning: 1 is not a valid MySQL-Link resource in test.php on line 79
Bei dem Versuch, in die Tabelle zu schreiben ist ein Fehler aufgetreten:
Und wo bitte ist in Deinem Code Zeile 78 bzw. Zeile 79?
Vermutlich in etwa hier:
$db=@mysql_connect() or die ("keine Verbidung zur Datenbank");
Du solltest Dir mal anschauen, was mysql_connect() für Parameter erwartet.
MfG
Götz
Hallo Götz,
vielen Dank für Deine Antwort. an "mysql_connect()" liegt es nicht.
Das Problem sind die Werteangaben bei dem "INSERT-Befehl". Lasse ich da die Werteangaben da weg, funktioniert alles.
Irgendwo da liegt das Problem, ich weiß aber trotzdem nicht woran genau!
Hallo fr@gma!
Das Problem sind die Werteangaben bei dem "INSERT-Befehl". Lasse ich da die Werteangaben da weg, funktioniert alles.
Laß Dir den fertigen Befehl mal ausgeben, und schau ihn Dir genau an.
Vielleicht läuft da beim Zusammenbauen ja was schief.
Setz am Anfang des Scripts am besten mal error_reporting(E_ALL).
MfG
Götz
Hallo Götz
die Ausgabe von $sql sieht übrigens so aus:
INSERT INTO kundendaten(anrede, vorname, name, ort) VALUES ('Herr', 'Tester', 'Mustermann', 'Musterstadt');
... hier ist für mich kein Fehler ersichtlich - trotzdem funktioniert es nicht.
Hallo Götz,
ich habe´den Fehler gefunden. Die TXT-Datei ist eine CSV-Sicherungsdatei. In dieser ist der AUTOKEY mit angegeben, dieser wurde dadurch in den "for-Schleifen" als Argument mit übergeben und deshalb war ein Argument zu viel.
Man, an diesem Zeug habe ich heute den ganzen Tag vertrödelt.
Jetzt funzt es aber, danke nochmal.
Hallo fr@gma!
INSERT INTO kundendaten(anrede, vorname, name, ort) VALUES ('Herr', 'Tester', 'Mustermann', 'Musterstadt');
... hier ist für mich kein Fehler ersichtlich - trotzdem funktioniert es nicht.
Das einzige was da vielleicht ein Problem sein könnte ist, daß hinter "kundendaten" kein Leerzeichen steht. Aber ich nehme eigentlich nicht an, daß das ein Problem ist oder sind Klammern in Tabellennamen erlaubt?
Laß Dir am besten mal an möglichst vielen sinnvollen Stellen Fehler und Variablen zur Kontrolle ausgeben.
MfG
Götz