MySQL-error - Invalid datetime-format: 1292 Incorrect datetime value: "for column
Ich bin mit mysql in Mac Os X 10.9.2 und wenn ich versuche zu laufen meine php-website in lokalen habe ich diese Fehlermeldung:
Invalid datetime-format: 1292 Incorrect datetime value: "for column nameOfTheColumn
Der Fehler passiert, wenn ich versuchte, fügen Sie einen leeren Wert in einem datetime-Feld. Die Website funktioniert in der Produktion und in einigen anderen einheimischen Computern, das problem ist also in der Datenbank und ich habe zu lösen in meiner lokalen Datenbank. Das Lesen über das problem gelesen habe, dass mysql ausgeführt werden konnte im Strict-Modus, so dass ich editieren Sie /usr/local/mysql/my.cnf und ich diese Zeile auskommentieren:
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Ich den computer neu starten und immer noch nicht funktioniert, aber laut der online-Dokumentation und anderen Fragen, das ist der Weg, aber ich würde gerne wissen, Was es genau die änderung, die ich tun muss, damit meine Anwendung funktioniert. Wiederholen Sie die code-arbeiten in der Produktion, windows mit xampp, etc... kann also auch nicht ändern, da zu lang und nur für die Arbeit, in lokale, ich muss die Rechte ändern in der MYSQL-DATENBANK.
Vielen Dank im Voraus!
- hat Ihr datetime-Spalte, die null zulassen ?
- Ja tut Es, aber ich wiederhole die Website gut funktioniert, in der Produktion und in anderen Orten wie meinem windows-PC mit xampp. Ich kann es nicht ändern die Struktur der Datenbank und den code. Das problem ist die mysql-Konfiguration, die ich über dieses, aber am Ende ich weiß nicht was es ist genau die änderung, die ich tun, meine.cnf oder andere Verwandte Datei.
- haben Sie schon daran gedacht, einfach kopieren der mysql-Konfiguration aus einer der arbeiten-Installationen auf Ihrem Rechner? vergessen Sie nicht, ändern Sie die Pfade für mysql datadir, Steckdosen entsprechend.
- auch wenn ich einfügen, Wert " für die datetime-Spalte ist, es löst keine Fehler sondern wandelt '0000-00-00 00:00:00'. Auch habe ich nicht Kommentar der sql_mode. Möglicherweise gibt es andere Probleme
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es aus wie die Standard-sql_mode auf Ihrem osx Instanz von MySQL eingestellt ist, zu verweigern ungültigen Daten.
Könnten Sie versuchen, ausführen dieses Befehls:
als Sie initialisieren Sie Ihre Sitzung.
können Sie ändern Ihre Spalte null
Spalten null-Werte zulassen standardmäßig, solange eine Spalte nicht als not NULL deklariert.
NULL
bedeutet "einen fehlenden unbekannten Wert" und es wird behandelt etwas anders als andere Werte. Lesen Sie mehr über das Konzept derNULL
und der Probleme, die auftauchen können, wenn nicht oder es zu verstehen in der MySQL-Dokumentation.Endlich habe ich die Lösung gefunden, in der Tat, ich war auf dem Weg, die Lösung zu kommentieren sql_mode, aber die Datei befindet sich in /etc/my.cnf anstelle von /usr/local/mysql/my.cnf. Wenn Sie nicht diese Zeile auskommentieren, und Sie versuchen, fügen Sie einen leeren Wert, wird ein Fehler ausgegeben, aber wenn Sie in einen Kommentar, leere Werte wird '0000-00-00 00:00:00'
Gab es ein ähnliches Problem auf unserem MySQL 5.6 server.
Wenn ich geändert
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
zusql_mode=NO_ENGINE_SUBSTITUTION
- das Problem wurde behoben.Natürlich, es ist eine gute Idee, um sicher zu sein, dass der Wert im richtigen format ist.
Zum Beispiel, wenn die Spalte den Typ "DATETIME", aber in php wir versuchen, legen Sie die Wert-Generierung von
date('c')
- wir werden bekommen, dass der Fehler (wenn der strict-Modus eingeschaltet ist). Aber wenn wir es zu ändern:date('Y-m-d H:i:s')
- das Problem ist Weg.