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

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

Problem


Beim Ausführen von einer oder mehreren Aktionen in Deinem Forum erhälst 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 )
  • Lade das gepackte Archiv herunter -->
    Beachte bitte Deine phpBB3-Version:

  • Entpacke das Archiv auf Deinem PC.
  • Lösche die folgende Zeile im Script

    Code: Alles auswählen

    die("Please read the first lines of this script for instructions on how to enable it");
  • 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.
  • 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 veränderte Tabellen entstanden sind.
Solltest Du Probleme durch MODs veränderten Tabellen haben, wende Dich bitte an das passende MOD-Support-Forum oder an den Autor der Modifikation.

Zuletzt bearbeitet: 06.07.2014 21:12 von • Der Artikel wurde 15293 mal angeschaut.