Hallo,
In meinem Forum bekommt man einen "SQL Error 1064" wenn man einen Thread, eine PN oder ein Profil anklickt. Ich weiß nicht, warum das so ist, ich habe keine Einstellung geändert, nichts installiert und sonst auch nichts gemacht. Als ich davor im Forum war, war noch alles in Ordnung.
Es ist gewissermaßen ein Notfall.
Die vollständig Fehlermeldung lautet:
-----------------------------------
SQL Error:
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 'groups FROM p5QQ_arcadecategories' at line 1
Query:
SELECT cid, groups FROM p5QQ_arcadecategories
Please contact the MyBB Group for technical support.
-----------------------------------
Wie kann ich das Problem lösen.
LG
Der Fehler scheint durch eine Abfrage in der inc/functions_arcade.php (
Zeile 212) verursacht zu werden.
Hast Du evtl. Änderungen in den Einstellungen der Arcade vorgenommen (Gruppierung oder Kategorisierung der Spiele)?
Danke für deine Rückmeldung. Vor ungefähr einem Jahr habe ich Änderungen bei Arcade vorgenommen, aber es hat nichts ausgemacht. Den Fehler gibt es erst seit heute früh. Sah ich auch erst jetzt, wo ich aus der Arbeit wieder zurück bin.
Hier ist ein Screenshot vom phpMyAdmin: [
attachment=13122]
Ich konnte das Problem nun umgehen, indem ich das Plugin "Arcade" deaktiviert habe.
Habe probeweise auch die im SQL-Error angeführten, problematischen Attribute (oder wie diese Dinger heißen) "cid" und "groups" im phpMyAdmin gelöscht und "Arcade" wieder aktiviert, aber ich bekomme dann wieder den SQL Error 1064 beim Anklicken von Threads, PNs und Profilen. Die beiden gelöschten Attribute konnte ich auch nicht mehr neu erzeugen/schreiben, weil jeweils eine Fehlermeldung kommt:
[
attachment=13123] [
attachment=13124]
Bei diesem Fehler gehe ich davon aus, dass bei dir MySQL 8 verwendet wird. Dort ist "groups" ein sogenanntes "reserviertes Wort"
Solange das Plugin diesen Spaltennamen benutzt, kann man den Fehler umgehen, in dem man den betreffenden Begriff bei der Abfrage in Backticks setzt. Es hätte also sehr wahrscheinlich nur die eine Zeile in der PHP-Datei geändert werden müssen.
Jetzt nach deinen Eingriffen über phpMyAdmin könnte die Behebung schwieriger werden.
Danke Euch soweit.
Habe noch ein bisschen im phpMyAdmin herumprobiert: Das reservierte Wort scheint nicht "groups" zu sein, sondern "group" im Singular. Wenn ich das Attribut "group" erzeugen will, sagt mir phpMyAdmin: "Der Name 'group' ist ein reserviertes MySQL-Schlüsselwort." Wenn ich ein Attribut mit Namen "groups" erzeugen will, sagt er das nicht, also die Wortreservierung sollte nicht im Wege stehen.
"Groups" gehört seit MySQL 8.02 auch zu reservietren Wörtern. Siehe
hier
Falls du ein Backup der Datenbank oder dieser Arcade-Tabelle hast, dann fahre besser ein erneuten Import dieser Tabelle (CREATE TABLE ... + INSERT INTO ...), um den vorherigen Zustand wiederherzustellen.
Dann benutze entweder die Backticks im o.g. SQL-Statements, um das Syntax-Problem zu lösen oder besser:
Erstelle/ändere die Tabelle mit einem alternativen Feld (z.B. arc_groups) und ändere das Plugin manuell mit diesem neuen Tabellenfeld.
Falls dieses Plugin immer noch vom Entwickler gepflegt wird,. wäre es sinnvoll diesen Fehler mitzuteilen.
[ETS]
PS.
Falls der Fehler von heute auf morgen aufgetreten ist, muss dein Webhoster Änderungen an der Webserver-Konfiguration vorgenommen haben, wie der Wechsel auf MySQL8.
Üblicherweise werden solche gravierenden Änderungen rechtzeitig angekündigt - denn Updates zu einer neuen Major-Version bringen erfahrungsgemäß immer Überraschungen mit sich
Habe das ehemalige "groups" Attribut auch mit anderen Namen zu erstellen versucht, etwas arcadegroups, aber es kommt derselbe Fehler: [
attachment=13126]
Es scheint irgendwas mit dem Charakterset utf8_general_ci zu tun haben, oder?
Nein, die Datenbank-Abfrage ist einfach total durcheinander. Wo kommt die her?