Fehler nach PHP und MySQL-Aktualisierung

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Quantico
Mitglied
Beiträge: 3
Registriert: 12.11.2008 05:21

Fehler nach PHP und MySQL-Aktualisierung

Beitrag von Quantico »

Guten Morgen,

ich habe vergangene Nacht meinen Server von php4 auf php5 und von mysql4 auf mysql5 aktualisieren lassen.

seitdem kann ich in meinem phpbb-forum keine beiträge mehr erstellen.

wenn ich den Absenden-Button klicke, bekomme ich folgende fehlermeldung:

Code: Alles auswählen

SQL ERROR [ mysqli ]

Field 'post_edit_reason' doesn't have a default value [1364]

SQL

INSERT INTO phpbb_posts (forum_id, poster_id, icon_id, poster_ip, post_time, post_approved, enable_bbcode, enable_smilies, enable_magic_url, enable_sig, post_username, post_subject, post_text, post_checksum, post_attachment, bbcode_bitfield, bbcode_uid, post_postcount, post_edit_locked, topic_id) VALUES (42, 2, 0, '77.130.167.179', 1226463235, 1, 1, 1, 1, 1, '', 'Re: Spam!', 'blabla', 'df5ea29924d39c3be8785734f13169c6', 0, '', 'z3244qmq', 1, 0, 80)

BACKTRACE


FILE: includes/db/mysqli.php
LINE: 143
CALL: dbal->sql_error()

FILE: includes/functions_posting.php
LINE: 1853
CALL: dbal_mysqli->sql_query()

FILE: posting.php
LINE: 1000
CALL: submit_post()
liegt dieser Fehler an der Aktualisierung? gibt es eine (einfache) möglichkeit das problem zu beseitigen, ohne die alten daten zu verlieren?

db-backup ist vorhanden, habs auch schon mit nem reinstall und automatischer wiederherstellung versucht, leider immer das gleiche problem.
in einem "sauberen" neuen setup, kann ich problemlos posten, daher mein verdacht, dass das was mit den alten tabelleneinträgen zu tun hat.

hoffe auf schnelle hilfe :-)
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hallo,

eine kleine Suche nach der Fehlermeldung hätte Dich bereits zum Erfolg gebracht ;-)

Suchbegriff wäre gewesen:

Field 'post_edit_reason' doesn't have a default value [1364]


Schau mal hier [Workaround] Doesn't have a default value errors
Quantico
Mitglied
Beiträge: 3
Registriert: 12.11.2008 05:21

Beitrag von Quantico »

hm, das war glaub der einzige begriff nachdem ich nicht gesucht hab :-?

DANKE jedenfalls!!

nach ausführen des scripts erhaöte ich ne ellenlange list mit sql-befehlen, woraus ich mir den gesucht habe, welcher offenbar die tabelle bearbeitet, die meinen fehler verursacht:

Code: Alles auswählen

MODIFY post_edit_reason varchar(255) DEFAULT '' NOT NULL COLLATE utf8_bin
leider kommt beim ausführen dieses befehls über phpmyadmin folgende fehlermeldung:

Code: Alles auswählen

SQL-Befehl: 

MODIFY post_edit_reason varchar( 255 ) DEFAULT '' NOT NULL COLLATE utf8_bin 

MySQL meldet:  

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MODIFY post_edit_reason varchar(255) DEFAULT '' NOT NULL COLLATE utf8_bin' at line 1 
langsam verzweifel ich ...
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12327
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Beitrag von Mahony »

Hallo
Du hast natürlich einen Fehler gemacht (so wie die Fehlermeldung ja schon sagt). Du darfst nicht einfach nur die Spalte angeben, sondern musst natürlich auch die entsprechende Tabelle angeben in der die zu ändernde Spalte enthalten ist. Das dient der Sicherheit deiner Daten, denn was wäre, wenn du eine Spalte mit dem gleichen Namen in einer anderen Tabelle hast, die aber nicht geändert werden soll? Richtig - die Spalte würde dann ebenfalls geändert werden.


Also versuchs mal mit

Code: Alles auswählen

ALTER TABLE phpbb_posts MODIFY post_edit_reason varchar(255) DEFAULT '' NOT NULL COLLATE utf8_bin;


Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Quantico
Mitglied
Beiträge: 3
Registriert: 12.11.2008 05:21

Beitrag von Quantico »

:o

funktioniert.... :D

naja, bin in php nicht sonderlich bewandert, aber dass da ne tabellenangabe fehlt, hätte selbst mir auffallen müssen *schäm*

dann werd ich das jetzt nonchmal mit einigen befehlen versuchen.
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“