Fehlermeldung: Field xxx doesn't have a default value

Beschreibung: Fehlermeldung: Field xxx doesn't have a default value / Incorrect string value

Kategorie: Fehlermeldungen

Link zu diesem Artikel: Alles auswählen

[url=https://www.phpbb.de/kb/viewarticle?a=40]Knowledge Base - Fehlermeldung: Field xxx doesn't have a default value[/url]

Quelle: Knowledge Base - Doesn't have a default value errors

Problem

Beim Ausführen von einer oder mehreren Aktionen in Deinem Forum erhältst Du diese oder eine ähnliche Fehlermeldung:
Field 'forum_last_post_subject' doesn't have a default value [1364]
Diese Fehlermeldung kann sich auf verschiedene Datenbankfelder beziehen.
Das Feld in der Beispielfehlermeldung variiert also.
Aber die Fehlerursache ist immer die gleiche.

Zusätzlich kann auch der folgende Fehler (sowie ähnliche Fehler) eine ähnliche Ursache und Lösung haben:
Incorrect string value: '\xF0\x9F\x98\x84Al...' for column 'message_text' at row 1 [1366]

Ursache

Gewöhnlich ist der Grund, dass die Datenbank aktualisiert worden ist.
Zum Beispiel: Datenbankaktualisierung von MySQL 3.0.x oder 4.0.x auf 4.1.x oder 5.x
Sehr oft wird diese Aktualisierung durch den Web-Hoster ohne Vorwarnung durchgeführt.

Das eigentliche Problem ist, dass das Datenbank Schema der alten Datenbank nicht sauber mit dem Schema der neuen Datenbank zusammenarbeitet.
Das Ergebnis dieser Aktualisierung, ohne das Schema anzupassen, ist oben genannte Fehlermeldung.

Dieses Problem erscheint mittlerweile immer öfter in phpBB-Support-Foren und viele Benutzer melden es sogar fälschlicherweise als Bug in der phpBB-Software.
Das Entwicklerteam von phpBB hat sich entschieden, diesem "Problem" anzunehmen und erstellte ein Script, welches das Problem beheben kann.

Die Lösung

  • Mache vor dem Benutzen der Lösung ein komplettes Backup Deines Forums ( Dateien und Datenbank )
  • Ganz wichtig: es sollte die aktuelle phpBB-Version bei dir installiert sein.
  • Für die phpBB-Version 3.1.x verwendest du diese Vorlage: https://github.com/phpbb/phpbb/blob/3.1 ... grader.php
    Für die php-BBVersion 3.2.x verwendest du diese Vorlage:
    https://github.com/phpbb/phpbb/blob/3.2 ... grader.php
    Kopiere den Inhalt der Vorlage und erstelle eine php-Datei. Verwende dafür einen geeigneten Editor wie z.B. Notepad++.
    Speichere deine Datei als mysql_upgrader.php ab.
  • Benutze Deinen FTP-Client um die Datei mysql_upgrader.php in den Forums-Root hochzuladen ( dorthin, wo die config.php liegt ).
  • Rufe nun das Script über Deinen Browser auf. Wenn Deine URL http://www.phpbb.de wäre, müsstest Du es wie folgt aufrufen:

    Code: Alles auswählen

    http://www.phpbb.de/mysql_upgrader.php
  • Dies wird veranlassen, dass das Script Deine Datenbank untersucht und Dir das korrekte Schema für Deine Datenbankversion anbietet. Es wird Dir einige SQL-Anweisungen zeigen, die Du dann über Deinen phpMyAdmin ausführen lassen kannst oder in eine MySQL-Konsole eingibst.
    Oder Du gibst diese SQL-Anweisungen Deinem Web-Hoster, damit er sie für Dich ausführt.
    Das ist ein ganz wichtiger Schritt. Eine der drei aufgeführten Aktionen MUSS zwingend durchgeführt werden, um die Datenbank zu reparieren.
  • Sobald die SQL-Anweisungen durchgeführt worden sind, sollten alle Fehler dieser Art behoben sein und Dein Forum funktioniert wieder einwandfrei.
  • Lösche bitte nun mit Deinem FTP-Client die Datei mysql_upgrader.php von Deinem WebSpace.

Hinweis

Das Script wurde entwickelt, um die Standardtabellen vom phpBB3-Schema zu aktualisieren. Es wird keine Probleme lösen, die durch MODs bzw. Extensions veränderte Tabellen entstanden sind.
Solltest Du Probleme durch MODs oder Extensions veränderte Tabellen haben, wende Dich bitte an das passende MOD-Support-Forum bzw. Extension-Support-Forum oder an den Autor der Modifikation/Extension.