XML import zu Mysql

upps klammer hab ich vergessen bleibt aber beim dem selben Fehler und was meinst du mit ausgegebenen SQL? steh da irgendwie auf dem Schlauch denn was ich ausgegeben bekomme :

Übertragung fehlgeschlagen. Grund: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET (userID = '1',name = 'Sascha',vorname = 'Sascha',nachname = 'Wohlt',tit' at line 3

Und Wohlt is ein nachname aber bei tit sollte eigentlich titel stehen.
 
Zuletzt bearbeitet:
Ja hab nun mal dein Tutorial weg genommen und mir auch den Updatebefehl angesehn
Da wird dir doch das SQL (Updatebefehl, Query, Abfrage, INSERT ... OR UPDATE-Text, oder wie immer du das Ding nennen willst das an die DB gesendet wird und das in meinem Tutrial mit echo $sql ausgegeben wird) ausgegeben oder wie hast du es angeschaut?
Poste es mal!

Falls du jetzt immer noch nicht weisst, was ich will, geh ich davon aus dass du mein Tutorial doch nicht durchgegangen bist
 
Also der Befehl:
PHP:
$arrmysqldml[] = "INSERT INTO $dbtabelle (". implode(', ', $mysqlspalten) .")
		VALUES (". implode(',', $mysqlwerte) .")
		ON DUPLICATE KEY UPDATE SET " . implode(',', $mysqlupdate) .";";
print_r ($arrmysqldml);

zeigt mir auf dem Bildschirm:

Array ( [0] => INSERT INTO importuser (userID, name, vorname, nachname, titel) VALUES ('1','Sascha','Sascha','Wohlt','2') ON DUPLICATE KEY UPDATE SET userID = '1',name = 'Sascha',vorname = 'Sascha',nachname = 'Wohlt',titel = '2';
und weiter gehts mit
[1] => INSERT INTO importuser (userID, name, vorname, nachname, titel) VALUES ('46','stefan','Stefan','Werde','2') ON DUPLICATE KEY UPDATE SET userID = '46',name = 'stefan',vorname = 'Stefan',nachname = 'Werde',titel = '2';
 
Zuletzt bearbeitet:
SQL:
INSERT INTO importuser (userID, name, vorname, nachname, titel) 
VALUES ('1','Sascha','Sascha','Wohlgemuth','2') 
ON DUPLICATE KEY UPDATE SET 
	userID = '1',
	name = 'Sascha',
	vorname = 'Sascha',
	nachname = 'Wohlt',
	titel = '2';

Ev. gehts doch nicht ganz so einfach.
Einer der folgende Punkte könnte scheitern. Du kannst dieses SQL von Hand entsprechend mal anpassen und gegen die DB testen (mittels phpMyAdmin)

SET auf Key-Feld
ggf. gibts Probel damit, dass die PrimaryKey-Felder auch gesetzt werden.
Zum testen mal die Zeile userId='1', herauslöschen und testen

userID/titel ist eine Nummer
momentan übergeben wir alle Felder als Strings. Das gibt Probleme bei numerischen Feldern. Poste doch mal dein Tabellenaufbau von der Tabelle importuser


Nachtrag:
Wenn du mal das CREATE TABLE - Script der Tabelle importuser hier postest, dann kann ich auch testen....
 
Zuletzt bearbeitet von einem Moderator:
Ja also der fehler hängt nur am ON DUPLICATE KEY UPDATE SET, nehm ich das raus schreibt er mir die Daten rein hier mal die Struktur der Tabelle userimport:

Tabellenstruktur für Tabelle importuser:
|Feld|Typ|Null|Standard
|------
|//**userID**//|int(11)|Ja|NULL auto increment
|name|varchar(30)|Ja|
|vorname|varchar(30)|Ja|
|nachname|varchar(30)|Ja|
|titel|int(1)|Ja|0
 
So, mal bisschen testen......

Ups, Doku falsch gelesen. in diesem Fall braucht es das Wort SET nicht

Also, lösch das SET nach dem UPDATE
 
Vielen dank jetzt klappt es mit dem Update auch, da hätte ich aber auch selbst drauf kommen können!
Naja den Wald vor lauter Bäumen nich gesehn (-:
Aber die tipps hier werden mir sicher noch bei anderen Problemen hilfreich sein!
 
Zurück