Array in MySQL einspielen - wie lautet der Query?
Lugia Bancetto
- php
Hallo :)
ich habe das komplette Array wie folgt gesammelt:
foreach($arr[0] as $k => $v)
{
$daten .= "INSERT INTO Datenbank (stuff, time) VALUES ('$v', 'Uhrzeit');";
}
und wollte nachdem ich verbindung & co aufgebaut habe die Daten einspielen:
mysql_db_query($datenb, $daten, $mysql);
allerdings funktioniert das nicht. - wenn ich in das foreach... jedesmal ein query mache braucht meine Website 60 Query :o) - deswegen wollte ich das irgendwie zusammenfassen in $daten halten
$daten = "INSERT INTO Datenbank (stuff, time) VALUES ('daten1', 'Uhrzeit'); INSERT INTO Datenbank (stuff, time) VALUES ('daten2', 'Uhrzeit'); INSERT INTO Datenbank (stuff, time) VALUES ('daten3', 'Uhrzeit');"; etc.
hat jemand einen Tipp, wie der richtige Syntax lauten muss?
Moin!
foreach($arr[0] as $k => $v)
{
$daten .= "INSERT INTO Datenbank (stuff, time) VALUES ('$v', 'Uhrzeit');";
}mysql_db_query($datenb, $daten, $mysql);
Je Query nur ein SQL-Befehl! Nicht mehrere.
- Sven Rautenberg
Je Query nur ein SQL-Befehl! Nicht mehrere.
Wenn das so ist habe ich 63 Querys - das ist doch ein bisschen viel, oder? - kann man das nicht einfacher machen ein array in eine Datenbank einzuspielen?
wäre super, auf jeden Fall schon mal herzl. Dank!
Luiga
Moin!
Je Query nur ein SQL-Befehl! Nicht mehrere.
Wenn das so ist habe ich 63 Querys - das ist doch ein bisschen viel, oder?
Sehe ich keinesfalls so. Das ist die kleinstmögliche Zahl an Querys, wenn du 63 neue Datensätze in die DB einspielen willst.
- kann man das nicht einfacher machen ein array in eine Datenbank einzuspielen?
Es ist vielleicht zu kritisieren, dass dein Array, weil es ja offenbar zusammenhängende Informationen enthält, möglicherweise in eine unzureichende Datenbankstruktur gespeichert werden soll. Also wäre zu klären, warum das Array in die DB soll, und wie darauf dann zugegriffen werden wird.
Andererseits: Wenn du (als Beispiel) 63 verschiedene, neue Produkte in die Datenbank speichern willst, brauchst du 63 verschiedene Querys. Punkt, aus, Ende.
Mit MySQL kannst du
INSERT INTO table (spalten) VALUES (werte), (werte), (werte)...
machen. Hat aber den nicht zu vernachlässigenden Nachteil, dass du damit - sofern notwendig - nicht mehr auf die einzeln generierten Autoincrement-IDs zugreifen kannst, die die DB bei einer entsprechenden Spalte generiert.
- Sven Rautenberg