Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Du hast Probleme beim Installieren oder bei der Benutzung einer Extension? In diesem Forum bist du richtig.
Forumsregeln
Bei Fragen zu einer bestimmten Extension sind Extension-Name und die Downloadquelle der Extension erforderlich. Letztere in Form der URL zum Download.
DerNordBerliner
Mitglied
Beiträge: 168
Registriert: 17.12.2009 10:41

Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Beitrag von DerNordBerliner »

Hallöchen,
nach dem Update von "Calendar" unter
http://calendar.zoo-am-ring.de/download/file.php?id=80

erscheint folgende Meldung:

Code: Alles auswählen

Allgemeiner Fehler
SQL ERROR [ mysqli ]

Unknown column 'anniversary' in 'where clause' [1054]

SQL

SELECT * FROM plattform_calendar WHERE date_from = '2019-12-18' OR date_from <= '2019-12-18' AND date_to >= '2019-12-18' OR date_from <= '2019-12-18' AND date_to = '0000-00-00' AND calendar_repeat > 0 OR date_from LIKE '%-12-18' AND anniversary = 1 ORDER by event_id

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 997
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 196
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 329
CALL: phpbb\db\driver\mysqli->sql_query()

FILE: [ROOT]/ext/hjw/calendar/includes/calendar_event.php
LINE: 83
CALL: phpbb\db\driver\factory->sql_query()

FILE: [ROOT]/ext/hjw/calendar/event/main_listener.php
LINE: 443
CALL: include('[ROOT]/ext/hjw/calendar/includes/calendar_event.php')

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 184
CALL: hjw\calendar\event\main_listener->calendar_on_header()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 46
CALL: Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 62
CALL: Symfony\Component\EventDispatcher\EventDispatcher->dispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 46
CALL: phpbb\event\dispatcher->dispatch()

FILE: [ROOT]/includes/functions.php
LINE: 4254
CALL: phpbb\event\dispatcher->trigger_event()

FILE: [ROOT]/index.php
LINE: 251
CALL: page_header()
Ist das nun ein Fehler in den PHP-Einstellungen und wenn ja, was muss ich ändern?
Und wenn nicht, wo liegt mein Problem?

Gruß Markus
HJW
Mitglied
Beiträge: 1302
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Re: Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Beitrag von HJW »

Hast du nach dem Update den Kalender deaktiviert und wieder aktiviert?
DerNordBerliner
Mitglied
Beiträge: 168
Registriert: 17.12.2009 10:41

Re: Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Beitrag von DerNordBerliner »

HJW hat geschrieben: 18.12.2019 15:33 Hast du nach dem Update den Kalender deaktiviert und wieder aktiviert?
Ich komme ja nicht mal mehr zum LogIn. Nach dem Einspielen der neuen Daten kommt sofort die Fehlermeldung.
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Beitrag von BNa »

Betrifft diese Datei

hjw/calendar/includes/calendar_event.php

und SQL-Abfrage ab Zeile 73

Code: Alles auswählen

$sql = 'SELECT *
		FROM ' . CALENDAR_TABLE . "
		WHERE date_from = '" . $year . '-' . $month . '-' . $day . "'
			OR date_from <= '" . $year . '-' . $month . '-' . $day . "'
				AND date_to >= '" . $year . '-' . $month . '-' . $day . "'
			OR date_from <= '" . $year . '-' . $month . '-' . $day . "'
				AND date_to = '0000-00-00' AND calendar_repeat > 0
		  	OR date_from LIKE '%-" . $month . '-' . $day . "'
				AND anniversary = 1 
		ORDER by event_id";
$event_result = $this->db->sql_query($sql);
Ist dann (meist) dieses Problem (Logik und Aufbau der SQL-SELECT Anweisung):
https://stackoverflow.com/questions/153 ... ere-clause
https://stackoverflow.com/a/6137496
HJW
Mitglied
Beiträge: 1302
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Re: Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Beitrag von HJW »

Das Problem liegt darin, dass beim Update eine neue Spalte 'anniversary' in der Tabelle calendar eingefügt wird. Die wird aber nur eingefügt, wenn man den Kalender deaktiviert, dann das Update hoch lädt und dann den Kalender wieder aktiviert.
Wenn du Zugriff auf deinen Datenbank hast, dann deaktiviere mal den Kalender in der Tabelle (dein Präfix)_ext. Einfach in die Spalte ext_active statt der 1 eine 0 eintragen. Dann solltest du wieder Zugriff haben. Eventuell noch den Cache-Ordner löschen (außer .htaccess und index.htm)
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Beitrag von BNa »

Also > Entweder ^ oder RTFM :lol:
DerNordBerliner
Mitglied
Beiträge: 168
Registriert: 17.12.2009 10:41

Re: Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Beitrag von DerNordBerliner »

"
HJW hat geschrieben: 18.12.2019 18:19 Das Problem liegt darin, dass beim Update eine neue Spalte 'anniversary' in der Tabelle calendar eingefügt wird. Die wird aber nur eingefügt, wenn man den Kalender deaktiviert, dann das Update hoch lädt und dann den Kalender wieder aktiviert.
Wenn du Zugriff auf deinen Datenbank hast, dann deaktiviere mal den Kalender in der Tabelle (dein Präfix)_ext. Einfach in die Spalte ext_active statt der 1 eine 0 eintragen. Dann solltest du wieder Zugriff haben. Eventuell noch den Cache-Ordner löschen (außer .htaccess und index.htm)
Das wars, Danke.
Muss einem aber auch mal gesagt werden...

Gruß Markus
HJW
Mitglied
Beiträge: 1302
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Re: Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Beitrag von HJW »

https://www.phpbb.de/kb/ext_install
Aktualisieren einer Erweiterung

Die Erweiterung in der Erweiterungs-Verwaltung im Administrations-Bereich deaktivieren.
Den Ordner <extension-name> innerhalb des Verzeichnisses ext/<autor-name>/ löschen. (Ein Klick auf Daten löschen im Administrations-Bereich tut dies nicht!)
Die Dateien der aktualisierten Erweiterung auf dem Server nach ext/<autor-name>/<extension-name>/ kopieren.
In der Zeile der Erweiterung auf Aktivieren klicken.
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 8135
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Beitrag von Kirk »

@DerNordBerliner
Im ACP Bereich da wo du die Extensions inst. findet man auch eine Anleitung Punkt "EINE ERWEITERUNG AKTUALISIEREN".
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2966
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: Calendar: Unknown column 'anniversary' in 'where clause' [1054]

Beitrag von LukeWCS »

DerNordBerliner hat geschrieben: 18.12.2019 18:41 Muss einem aber auch mal gesagt werden...
Wie Kirk schon geschrieben hat, wird direkt unter der Liste der Erweiterungen von "Erweiterungen verwalten" erklärt, was zu tun ist:
EINE ERWEITERUNG AKTUALISIEREN
  1. Deaktivieren Sie die Erweiterung
  2. Löschen Sie die Dateien der Erweiterung aus dem Dateisystem
  3. Laden Sie die neuen Dateien hoch
  4. Aktivieren Sie die Erweiterung
und die Kollegen haben ja auch andere Quellen hinsichtlich Vorgehensweise genannt.

Noch eine Ergänzung warum eine Erweiterung vor einem Update deaktiviert werden muss:
  1. Zuerstmal wird die Erweiterung stillgelegt und es finden von dieser keine Zugriffe mehr auf die Datenbank und/oder Dateisystem statt. Gleichzeitig stehen auch Resourcen dieser Erweiterung nicht mehr zur Verfügung, zum Beispiel Template-Variablen. Das deaktivieren einer Erweiterung ist mit dem herunterfahren des PCs vergleichbar.
  2. Wenn eine Erweiterung aktiviert wird, dann - das wissen viele nicht - wird diese eben nicht nur aktiviert, sondern auch immer ein Update-Prozess in Gang gesetzt, sofern ein solcher vom Programmierer definiert wurde. Das ist die sogenannte Migration. Und genau das war hier auch das Problem, wie HJW geschrieben hat.
Es finden bei Aktivierung/Deaktivierung noch weitere Dinge statt, das ist jetzt aber sekundär.

Ein solcher Update-Prozess prüft zuerst welche Version installiert war und welche jetzt vorhanden ist. Wenn eine Ext z.B. in der Version 1.0.0 installiert war und dann per hochladen auf 1.0.3 aktualisiert wurde, dann werden bei Reaktivierung der Erweiterung der Reihe nach die Updates 1.0.1, 1.0.2 und 1.0.3 ausgeführt. Davon bekommt man als Admin nur nichts mit, weil das sehr schnell geht und normalerweise auch keine Anzeige dafür erfolgt. Nicht jede Erweiterung hat/braucht einen solchen Update-Prozess (Migration). Aber alleine schon wegen Punkt a) sollte man die genannte Prozedur immer ausführen, dann ist man auf der sicheren Seite.
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Antworten

Zurück zu „Extension Support“