Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown column

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.
Stefanman
Mitglied
Beiträge: 10
Registriert: 29.12.2011 00:33
Wohnort: München

Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown column

Beitrag von Stefanman »

Hallo zusammen,

seit heut erscheint beim Aufruf eines beliebigen Threads in unserem Forum diese Fehlermeldung.
Da ich noch wenig Erfahrung mit SQL habe, hoffe ich dass Ihr mir hier weiterhelfen könnt.
Das Forum lief bisher immer fehlerfrei.
PHP Version 3.08
Datenbank-Server: MySQL 5.0.91-log

Besten Dank!

Allgemeiner Fehler
SQL ERROR [ mysql4 ]

Unknown column 't.topic_type' in 'where clause' [1054]

SQL

SELECT t.*, tp.topic_posted, tt.mark_time FROM (phpbb_topics t) LEFT JOIN phpbb_topics_posted tp ON (tp.topic_id = t.topic_id AND tp.user_id = 56) LEFT JOIN phpbb_topics_track tt ON (tt.topic_id = t.topic_id AND tt.user_id = 56) WHERE t.forum_id IN (4, 0) AND t.topic_type IN (2, 3) ORDER BY t.topic_time DESC

BACKTRACE

FILE: includes/db/mysql.php
LINE: 175
CALL: dbal_mysql->sql_error()

FILE: viewforum.php
LINE: 375
CALL: dbal_mysql->sql_query()
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12250
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown colum

Beitrag von Mahony »

Hallo
1. Was hast du getan, bevor der Fehler aufgetreten ist? MODs installiert? Falls ja welche?
2. Was steht in Zeile 375 deiner viewforum.php ?
Zeig am besten mal deine viewforum.php im Pastebin


Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Stefanman
Mitglied
Beiträge: 10
Registriert: 29.12.2011 00:33
Wohnort: München

Re: Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown colum

Beitrag von Stefanman »

Hallo Mahony,

danke für die Antwort.
zu 1: Es wurde nichts am Forum installiert oder administriert. Die einzigen Vorgänge davor waren ein Post von einem User und ein User hat sein Passwort geändert.
zu 2: Ich habe die viewforum.php hochgeladen:
https://www.phpbb.de/support/pastebin.p ... view&s=913

In Zeile 375 steht folgendes:
$result = $db->sql_query($sql);

Allerdings habe ich gerade gesehen, dass es je nach Thread teilweise verschiedene Zeilenangaben in der Fehlermeldung gibt:
Z.B. hier ist es Line 271:
FILE: viewtopic.php
LINE: 271
CALL: dbal_mysql->sql_query()

Danke

Gruß Stefan
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown colum

Beitrag von gn#36 »

Eigentlich sieht das eher so aus, als wäre mit deiner Datenbank was nicht in Ordnung, die Spalte topic_type ist nämlich durchaus Standard und fehlt hier offenbar. Die Spalte gibt vor, ob ein Thema als Wichtig markiert wird oder nicht.

Mach ein Backup deiner aktuellen Datenbank und spiel' dann ein (hoffentlich nicht zu viel) älteres Backup der Tabelle phpbb_topics wieder ein. Oder, wenn die Tabelle nicht völlig beschädigt ist kannst du auch die fehlende Spalte wieder hinzufügen und z.B. mit dem Default 0 belegen (dann sind alle schon vorhandenen Themen normale Themen, Wichtige und Ankündigungen müsstest du manuell wieder markieren).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Stefanman
Mitglied
Beiträge: 10
Registriert: 29.12.2011 00:33
Wohnort: München

Re: Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown colum

Beitrag von Stefanman »

Hallo!

Besten Dank für diesen Tipp! Der war sehr sehr hilfreich!
Habe nun mit MySQLDumper ein Backup gemacht und anschließend die Tabelle `phpbb_topics' bearbeitet.
Habe dort die Spalte topic_type neu eingefügt und siehe da, es funktioniert wieder.
Allerdings kam dann beim Testen des Forums noch 2 weitere Fehlermeldungen die auf weitere fehlende Spalten hingedeutet haben:
- topic_views
- topic_last_post_id
habe diese dann auch noch eingefügt. (auch mit Default 0)

Da ich nicht weiss, ob noch weitere Felder fehlen, wäre es hilfreich wenn mir jemand eine Aufstellung über alle erforderlichen Spalten in der
`phpbb_topics' zukommen lassen könnte.

Eine weitere Frage die sich mir abschließend noch stellt ist,
wie kann eine Tabelle einfach so beschädigt werden?
Evtl. durch Hacker Angriff ??

Besten Dank

Gruß Stefan
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown colum

Beitrag von Miriam »

Könnte sein, aber ein Hacker hätte in deiner DB "richtig" aufgeräumt.

meine Standard-Tabelle phpbb_topics sieht so aus:
  • Field Type Null Key Default Extra
    topic_id mediumint(8) unsigned NO PRI NULL auto_increment
    forum_id mediumint(8) unsigned NO MUL 0
    icon_id mediumint(8) unsigned NO 0
    topic_attachment tinyint(1) unsigned NO 0
    topic_approved tinyint(1) unsigned NO MUL 1
    topic_reported tinyint(1) unsigned NO 0
    topic_title varchar(255) NO
    topic_poster mediumint(8) unsigned NO 0
    topic_time int(11) unsigned NO 0
    topic_time_limit int(11) unsigned NO 0
    topic_views mediumint(8) unsigned NO 0
    topic_replies mediumint(8) unsigned NO 0
    topic_replies_real mediumint(8) unsigned NO 0
    topic_status tinyint(3) NO 0
    topic_type tinyint(3) NO 0
    topic_first_post_id mediumint(8) unsigned NO 0
    topic_first_poster_name varchar(255) NO
    topic_first_poster_colour varchar(6) NO
    topic_last_post_id mediumint(8) unsigned NO 0
    topic_last_poster_id mediumint(8) unsigned NO 0
    topic_last_poster_name varchar(255) NO
    topic_last_poster_colour varchar(6) NO
    topic_last_post_subject varchar(255) NO
    topic_last_post_time int(11) unsigned NO MUL 0
    topic_last_view_time int(11) unsigned NO 0
    topic_moved_id mediumint(8) unsigned NO 0
    topic_bumped tinyint(1) unsigned NO 0
    topic_bumper mediumint(8) unsigned NO 0
    poll_title varchar(255) NO
    poll_start int(11) unsigned NO 0
    poll_length int(11) unsigned NO 0
    poll_max_options tinyint(4) NO 1
    poll_last_vote int(11) unsigned NO 0
    poll_vote_change tinyint(1) unsigned NO 0
Hast du mal probiert die Tabellen zu reparieren?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Stefanman
Mitglied
Beiträge: 10
Registriert: 29.12.2011 00:33
Wohnort: München

Re: Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown colum

Beitrag von Stefanman »

danke,
hab beim Abgleich gesehen dass mir auch die "poll_max_options" gefehlt hat.

Was meinst du mit reparieren?
Ich habe die Tabelle ja nun manuell repariert und die fehlenden Spalten wieder eingefügt.

Gruß Stefan
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown colum

Beitrag von Miriam »

Ich meinte

Code: Alles auswählen

REPAIR TABLE `phpbb_topics`
in der DB auszuführen.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Stefanman
Mitglied
Beiträge: 10
Registriert: 29.12.2011 00:33
Wohnort: München

Re: Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown colum

Beitrag von Stefanman »

leider finde ich diese Funktion bei mir nicht im MySQLdumper.
wo ist die genau?
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12250
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Allgemeiner Fehler - SQL ERROR [ mysql4] - Unknown colum

Beitrag von Mahony »

Hallo
Das ist keine Funktion, sondern ein SQL-Befehl. Den SQL-Befehl gibt man im Mysqldumper im SQL-Browser-Eingabefeld ein und klickt auf SQL-Befehl ausführen.

P.S. Der SQL-Befehl würde dir allerdings die fehlenden Spalten nicht zurück holen. Er dient dazu Tabellen zu reparieren.
Siehe dazu auch http://dev.mysql.com/doc/refman/5.1/de/ ... table.html


Grüße: Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Antworten

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