Seite 1 von 1

Fehler nach PHP und MySQL-Aktualisierung

Verfasst: 12.11.2008 05:27
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 :-)

Verfasst: 12.11.2008 10:13
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

Verfasst: 12.11.2008 13:25
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 ...

Verfasst: 12.11.2008 14:16
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

Verfasst: 12.11.2008 14:47
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.