Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine MySQL-INSERT-Abfrage nach einem MySQLnd-Upgrade mit „Falscher Datumswert: ‚0000-00-00'' fehl?

Warum schlägt meine MySQL-INSERT-Abfrage nach einem MySQLnd-Upgrade mit „Falscher Datumswert: ‚0000-00-00'' fehl?

Linda Hamilton
Linda HamiltonOriginal
2024-12-22 06:43:14562Durchsuche

Why Does My MySQL INSERT Query Fail with

MySQL-Fehler: „Falscher Datumswert: ‚0000-00-00‘“ in INSERT-Abfrage

Problem:

Beim Versuch, über phpMyAdmin Werte in eine Tabelle mit einer Datumsspalte einzufügen, tritt bei Benutzern ein Fehler auf, obwohl dies erfolgreich war Einfügungen über die Website. Die Fehlermeldung: „Falscher Datumswert: ‚0000-00-00‘“ wird angezeigt.

Analyse:

Die Grundursache des Fehlers hängt mit Änderungen zusammen im SQL-Modus von MySQL nach einem Upgrade von MySQLnd 5.0.12 auf 5.7.11. In MySQL 5.7 ist der strikte Modus standardmäßig aktiviert, der strengere Datenvalidierungsregeln erzwingt. Der Standardwert „0000-00-00“ für die Datumsspalte verstößt gegen diese Regeln, was zu dem Fehler führt.

Lösung:

Um das Problem zu beheben und das zuzulassen Beim Einfügen von „0000-00-00“ als gültigen Datumswert muss der strikte Modus deaktiviert werden. Dies kann durch Ausführen der folgenden Abfrage erreicht werden:

SET GLOBAL sql_mode = '';

Zusätzliche Informationen:

Die Aktivierung des strikten Modus stellt die Datenintegrität sicher, indem bestimmte Regeln für Datentypen und -werte erzwungen werden. Es kann jedoch auch zu Fehlern kommen, wenn versucht wird, Daten einzufügen, die diesen Regeln nicht strikt entsprechen. Durch Deaktivieren des strikten Modus können Benutzer diese Prüfungen umgehen und das Einfügen von Daten wie „0000-00-00“ zulassen, die in bestimmten Kontexten gültig sein können.

Es ist wichtig zu beachten, dass die Datenintegrität von entscheidender Bedeutung ist In Ihrer Anwendung sollten Sie die Auswirkungen der Deaktivierung des strikten Modus sorgfältig abwägen. Erwägen Sie die Implementierung benutzerdefinierter Validierungs- und Fehlerbehandlungsmechanismen, um sicherzustellen, dass keine ungültigen Daten in Ihrer Datenbank gespeichert werden.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine MySQL-INSERT-Abfrage nach einem MySQLnd-Upgrade mit „Falscher Datumswert: ‚0000-00-00'' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn