Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
MyBB error on xxxforum
#1
Ich bekomme momentan öfter eine Mail mit folgender Fehlermeldung...

Code:
Your copy of MyBB running on xxx (...) has experienced an error. Details of the error include:
---
Type: 20
File:  (Line no. 0)
Message
SQL Error: 1054 - Unknown column 'u.username' in 'order clause'
Query:
            SELECT * FROM (
                SELECT
                    s.sid, s.ip, s.uid, s.time, s.location, u.username, s.nopermission, u.invisible, u.usergroup, u.displaygroup,
                    row_number() OVER (PARTITION BY s.uid, s.ip ORDER BY time DESC) AS row_num
                FROM
                    mybb_sessions s
                    LEFT JOIN mybb_users u ON (s.uid = u.uid)
                WHERE s.time > 1579036741
            ) s
            WHERE row_num = 1
            ORDER BY u.username ASC, s.time DESC
            LIMIT 0, 40
        
Back Trace: #0  errorHandler->email_error(20, SQL Error: 1054 - Unknown column 'u.username' in 'order clause'
Query:
            SELECT * FROM (
                SELECT
                    s.sid, s.ip, s.uid, s.time, s.location, u.username, s.nopermission, u.invisible, u.usergroup, u.displaygroup,
                    row_number() OVER (PARTITION BY s.uid, s.ip ORDER BY time DESC) AS row_num
                FROM
                    mybb_sessions s
                    LEFT JOIN mybb_users u ON (s.uid = u.uid)
                WHERE s.time > 1579036741
            ) s
            WHERE row_num = 1
            ORDER BY u.username ASC, s.time DESC
            LIMIT 0, 40
        , , 0) called at [/var/customers/webs/forum/inc/class_error.php:195]
#1  errorHandler->error(20, Array ([error_no] => 1054,[error] => Unknown column 'u.username' in 'order clause',[query] =>
            SELECT * FROM (
                SELECT
                    s.sid, s.ip, s.uid, s.time, s.location, u.username, s.nopermission, u.invisible, u.usergroup, u.displaygroup,
                    row_number() OVER (PARTITION BY s.uid, s.ip ORDER BY time DESC) AS row_num
                FROM
                    mybb_sessions s
                    LEFT JOIN mybb_users u ON (s.uid = u.uid)
                WHERE s.time > 1579036741
            ) s
            WHERE row_num = 1
            ORDER BY u.username ASC, s.time DESC
            LIMIT 0, 40
        )) called at [/var/customers/webs/forum/inc/db_mysqli.php:597]
#2  DB_MySQLi->error(
            SELECT * FROM (
                SELECT
                    s.sid, s.ip, s.uid, s.time, s.location, u.username, s.nopermission, u.invisible, u.usergroup, u.displaygroup,
                    row_number() OVER (PARTITION BY s.uid, s.ip ORDER BY time DESC) AS row_num
                FROM
                    mybb_sessions s
                    LEFT JOIN mybb_users u ON (s.uid = u.uid)
                WHERE s.time > 1579036741
            ) s
            WHERE row_num = 1
            ORDER BY u.username ASC, s.time DESC
            LIMIT 0, 40
        ) called at [/var/customers/webs/forum/inc/db_mysqli.php:337]
#3  DB_MySQLi->query(
            SELECT * FROM (
                SELECT
                    s.sid, s.ip, s.uid, s.time, s.location, u.username, s.nopermission, u.invisible, u.usergroup, u.displaygroup,
                    row_number() OVER (PARTITION BY s.uid, s.ip ORDER BY time DESC) AS row_num
                FROM
                    mybb_sessions s
                    LEFT JOIN mybb_users u ON (s.uid = u.uid)
                WHERE s.time > 1579036741
            ) s
            WHERE row_num = 1
            ORDER BY u.username ASC, s.time DESC
            LIMIT 0, 40
        ) called at [/var/customers/webs/forum/online.php:223]

...wo soll ich mit der Suche beginnen?
Zitieren
#2
Das ist ein Fehler in MyBB 1.8.22:
https://github.com/mybb/mybb/issues/3874
Zitieren
#3
(15.01.2020, 12:30)doylecc schrieb: Das ist ein Fehler in MyBB 1.8.22:
https://github.com/mybb/mybb/issues/3874
Also einfach abwarten?
Zitieren
#4
Wenn du schon deine URL zensierst, verwende bitte keine Erotikseite als Platzhalter.

Walkaround:
Füge über:
PHP-Code:
        $query $db->query("
            SELECT * FROM (
                SELECT
                    s.sid, s.ip, s.uid, s.time, s.location, u.username, s.nopermission, u.invisible, u.usergroup, u.displaygroup,
                    row_number() OVER (PARTITION BY s.uid, s.ip ORDER BY time DESC) AS row_num
                FROM
                    "
.TABLE_PREFIX."sessions s
                    LEFT JOIN "
.TABLE_PREFIX."users u ON (s.uid = u.uid)
                WHERE s.time > 
$timesearch
            ) s
            WHERE row_num = 1
            ORDER BY 
$sql
            LIMIT 
{$start}{$perpage}
        "
); 
dies ein:
PHP-Code:
        $sql str_replace('u.username''s.username'$sql); 
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
(15.01.2020, 14:43)StefanT schrieb: Wenn du schon deine URL zensierst, verwende bitte keine Erotikseite als Platzhalter.

Big Grin Big Grin Big Grin so gut der Hinweis Big Grin
Zitieren
#6
(15.01.2020, 14:43)StefanT schrieb: Wenn du schon deine URL zensierst, verwende bitte keine Erotikseite als Platzhalter.

Walkaround:
Füge über:
PHP-Code:
$query $db->query("
 SELECT * FROM (
 SELECT
 s.sid, s.ip, s.uid, s.time, s.location, u.username, s.nopermission, u.invisible, u.usergroup, u.displaygroup,
 row_number() OVER (PARTITION BY s.uid, s.ip ORDER BY time DESC) AS row_num
 FROM
 "
.TABLE_PREFIX."sessions s
 LEFT JOIN "
.TABLE_PREFIX."users u ON (s.uid = u.uid)
 WHERE s.time > 
$timesearch
 ) s
 WHERE row_num = 1
 ORDER BY 
$sql
 LIMIT 
{$start}{$perpage}
 "
); 
dies ein:
PHP-Code:
$sql str_replace('u.username''s.username'$sql); 

OK, das mit den 3x hatte ich nicht so bedacht Big Grin  wirklich guter Hinweis Wink

Editiert habe ich die "/online.php" und das ganze sieht nun so aus...

PHP-Code:
$sql str_replace('u.username''s.username'$sql);
 
$query $db->query("
 SELECT * FROM (
 SELECT
 s.sid, s.ip, s.uid, s.time, s.location, u.username, s.nopermission, u.invisible, u.usergroup, u.displaygroup,
 row_number() OVER (PARTITION BY s.uid, s.ip ORDER BY time DESC) AS row_num
 FROM
 "
.TABLE_PREFIX."sessions s
 LEFT JOIN "
.TABLE_PREFIX."users u ON (s.uid = u.uid)
 WHERE s.time > 
$timesearch
 ) s
 WHERE row_num = 1
 ORDER BY 
$sql
 LIMIT 
{$start}{$perpage}
 "
); 

Ich hoffe das passt und funktioniert nun. Die Mail kam immer Morgens, welche Aufgabe muss ich ausführen um das zu testen?
Zitieren
#7
Die Datenbank-Abfrage wird ausgeführt, wenn die "Wer ist online?"-Liste nach Benutzernamen sortiert wird.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#8
(16.01.2020, 11:50)StefanT schrieb: Die Datenbank-Abfrage wird ausgeführt, wenn die "Wer ist online?"-Liste nach Benutzernamen sortiert wird.

Klar, hätte ich besser hinschauen müssen!
Funktioniert, vielen Dank
Zitieren
#9
Moin,

habe es eingefügt, aber kein Erfolg. Also es ist alles beim alten .... !
Wenn ich auf Benutzernamensortieren gehe, erhalte ich folgende Meldung:


Zitat:MyBB SQL Error
MyBB has experienced an internal SQL error and cannot continue.

Please contact the MyBB Group for technical support.


Gruß
Dennis
Zitieren
#10
Bitte beschreibe doch mal genau, was du da jetzt "eingefügt" hast.
Zitieren