2016-05-09 11 views
0

Diese Anweisung funktioniert nicht mehr. Ich glaube, dass es wegen einer neuen Version von WAMP ist, die ich 4.5.2 verwende.mysql ON DUPLICATE KEY wird nicht erkannt

INSERT INTO at_user_listing_settings (userID, rfID, userID_rfID, Watching) VALUES(177, 35888, '177_35888', '1') ON DUPLICATE KEY UPDATE Watching='1' 

ich diesen Fehler:

Unrecognized keyword. (near "ON" at position 138) 
Unrecognized keyword. (near "DUPLICATE" at position 141) 
Unrecognized keyword. (near "KEY" at position 151) 

scheine ich kann nichts falsch mit der Syntax zu finden, wurde ON DUPLICATE KEY geändert oder veraltet?

+0

Sie verwenden '4.5.2' ** was **? – RiggsFolly

+0

Erhalten Sie diesen Fehler ** bei dieser genauen Abfrage ** ?? – RiggsFolly

+0

Anzeige als Ausgabe von: SELECT version(); –

Antwort

0

umschreiben einfach Ihre Anfrage dazu:

INSERT INTO at_user_listing_settings 
SET 
    userID = 177, 
    rfID = 35888, 
    userID_rfID = '177_35888', 
    Watching = '1' 
ON DUPLICATE KEY UPDATE 
    Watching = '1' 
+0

Nur aus Interesse ... was wird das tun, um Dinge zu verbessern – RiggsFolly

+0

Gern geschehen. – Legionar

+0

Ich versuchte die obige Aussage, aber immer noch ähnliche Fehler, es sagt auch etwas über eine andere Spalte. "Notizen" vielleicht, dass das Problem verursacht? Fehler: Unbekanntes Schlüsselwort.(nahe "ON" an Position 151) Nicht erkanntes Schlüsselwort. (nahe "DUPLICATE" bei Position 154) Nicht erkanntes Schlüsselwort. (in der Nähe von "KEY" an Position 164) Ein Alias ​​wurde zuvor gefunden. (nahe '' 1 '' an Position 189) # 1364 - Feld 'Notizen' hat keinen Standardwert Ich frage mich, ob der letzte Fehler Teil etwas damit zu tun haben könnte ... –

1

Dies ist eine phpMyAdmin Ausgabe erscheinen würde!

Siehe github errors that have been reported

Es scheint ziemlich alt, aber ich sehe keinen Hinweis auf einen fixen, und es ist noch offen

Wir waren für ein similiar Werkzeug einen ADDON versehen Adminer, SourceForge download link here als Menschen genannt wurden, die ein paar ungerade Probleme mit phpMyAdmin

dass herunterladen und es wird direkt in WAMPServer installieren und auf der WAMPServer Homepage im „Your Aliases“ Menü

+0

Ich gebe Ihnen +1, um zumindest zu wissen, dass es sich um ein phpmyadmin-Problem und nicht um ein Code-Problem handelt. Obwohl es technisch eine mysql-Einstellung war. –

2

Schließlich dieses Ding dachte erscheinen heraus.

Wenn Sie eine neue WAMP-Version herunterladen, wird die mysql standardmäßig auf "Strict" eingestellt. Mein echter Server, der von Hostgator gehostet wird, muss mildere Einschränkungen haben. Beim Versuch, den Code lokal auszuführen, war der Code korrekt, aber bei den SQL-Anweisungen traten Probleme auf, wenn versucht wurde, die Datenbank zu aktualisieren oder in die Datenbank einzufügen (auch lokal).

Zum Beispiel benötigt der Strict-Modus Spalten mit booleschen Werten, um einen Standardwert zu haben. Wenn eine Spalte keinen Standardwert hat, würde sie beim Einfügen fehlschlagen. Der schlimmste Teil ist, dass es keinen Apache- oder PHP-Fehler zurückgibt, so dass es extrem schwierig war, zu debuggen. Es mochte auch nicht "ON DUPLICATE KEY".

Um dieses Problem zu lösen, ging ich in die WAMP> MySQL> my.ini> und suchte nach sql-mode="STRICT_ALL_TABLES".

Ich entfernte dann STRICT_ALL_TABLES, und alles begann zu arbeiten, wie es sollte.