Fokuna.de neue Installation - mysqli Probleme unter php 8.0

Begonnen von Fokuna2, 08 September 2022, 01:21:39

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Fokuna2

Sehr geehrte Damen und Herren,
ich habe gerade gesehen, das eine neue PMX version gibt 2.7.2
und habe sie fast ohne Fehler installieren können, nur die Administratoren Seite konnte
nicht erstellen, folgende Fehlermeldung kommt:


ZitatA error occured while processing this page.

Please report the following error to the owner of this website.

Fatal error: Uncaught exception:
Access denied; you need (at least one of) the SUPER, SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation (code: 1227)
in includes/mx_db_mysqli.php on line 460

die neue Installation findest du unter w.fokuna.de
und der link ist a.de//admin.php?op=settings  wodrauf gezeigt wird, anscheinend fehlt irgendein Ordner, oder ein Zeichen ist viel.

Ich dachte dieser Fehler wäre schon längst behoben, der Grund der neu Installation ist, das die PMX Version  2.7.1.174 und Fokuna.de nicht php 8.0 tauglich ist und eine Weise Seite zeigt.  Bei php 7.4 ok ist.
Mit freundlichen Grüßen
Thomas
Neue Daten:
Mysql: 8.0.28-19
PHP-Version: 7.4 ->8.0.x

Fokuna2

#1
Wann werden ihr / du  PMX auf Mysql 8.x anpassen ?
Wir haben schon 2022, und mein Provider hat 2019 -2020 schon Mysql 8.x eingeführt


Ich habe jetzt die Zeile 459 -  472 ausgeklammert, bei PMX 2.7.2.200


/* Probleme mit evtl. falschem Charset beheben */
         /*self::$instance->query("SET
           names 'utf8',
           character set 'utf8',
           character_set_results = 'utf8',
           character_set_client = 'utf8',
           character_set_connection = 'utf8',
           character_set_database = 'utf8',
           character_set_server = 'utf8'
         ");
         /* Probleme mit MySQL 5.7 beheben */
         /*self::$instance->query("SET SESSION sql_mode='IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'");
         /*NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION*/
         /*sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION*/


Trotzdem kommt nun ein Fehler, diesmal anscheinend aber vom PMX 2.7.2.200

Fatal error: Uncaught exception:
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'usr_ud20_135_2.s.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (code: 1055)
in includes/mx_db_mysqli.php on line 686


Übrigens verlangt der Provider spätesten im November eine Umstellung auf PHP 8.0 oder höher, weil PHP 7.4 abgeschaltet wird.
Mit freundlichen Grüßen
Thomas
Neue Daten:
Mysql: 8.0.28-19
PHP-Version: 7.4 ->8.0.x

Olaf

wie auch schon öfters erwähnt...
MySQL 8 ist zwar neu, aber noch nicht durchgängig auf den meisten Servern verteten...
MySQL 5.7.39 ist übrigens im Juli 2022 erschienen... also sicher nicht "veraltet"... und die V 5.7.40 steht in den Startlöchern.

PragmaMx ab V2.7 ist Kompatibel mit PHP 8.0, ab der V2.8 (demnächst) auch PHP 8.1/8.2 kompatibel

Warum dein Hoster so einen Stress macht mit den Versionen ist für mich nicht nachvollziehbar.....

zu deinem Fehler :
"SELECT list is not in GROUP BY ..... "  ist eine Einstellung auf deinem Server. Das hat was mit deinen MySQL-Rechten zu tun. Die gleichen Zeilen Code gehen ja unter MySQL 5.x, also sicherlich KEIN Fehler von pragmaMx.
g

Olaf

Kein Support über PN, Mail etc.!
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

Olaf

ggf. Lösung :

füge in die Datei mx_db_mysqli.php ab Zeile 480 folgendes ein:
    self::$instance->query("SET sql_mode=(SELECT REPLACE (@@sql_mode,'ONLY_FULL_GROUP_BY',''))");

Bitte Rückmeldung.... egal, welches Ergebnis
g

Olaf

Kein Support über PN, Mail etc.!
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

Fokuna2

#4
Ich habe die Zeile 480 in mit

self::$instance->query("SET sql_mode=(SELECT REPLACE (@@sql_mode,'ONLY_FULL_GROUP_BY',''))");
überschrieben, richtig so ?

und folgende Fehlermeldung kommt nun :

ZitatA error occured while processing this page.

Please report the following error to the owner of this website.

Fatal error: Uncaught exception:
syntax error, unexpected token "public" (code: 0)
in includes/mx_db_mysqli.php on line 483


Update:
ich habe nun die Zeile:
self::$instance->query("SET sql_mode=(SELECT REPLACE (@@sql_mode,'ONLY_FULL_GROUP_BY',''))"); ab Zeile 480 *ergänzt*.
Anscheinend funktioniert, jetzt die Seite, vielen Dank.
Mit freundlichen Grüßen
Thomas
Neue Daten:
Mysql: 8.0.28-19
PHP-Version: 7.4 ->8.0.x

Olaf

ich hatte ja auch geschrieben "einfügen", nicht ersetzen...  :thumbup:
schön, daß es geklappt hat...
Wird in der pragmaMx V 2.8 dann auch fest drin sein
g

Olaf

Kein Support über PN, Mail etc.!
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!