MyBB.de Forum

Normale Version: MyBB error on xxxforum
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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?
Das ist ein Fehler in MyBB 1.8.22:
https://github.com/mybb/mybb/issues/3874
(15.01.2020, 13:30)doylecc schrieb: [ -> ]Das ist ein Fehler in MyBB 1.8.22:
https://github.com/mybb/mybb/issues/3874
Also einfach abwarten?
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); 
(15.01.2020, 15: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
(15.01.2020, 15: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?
Die Datenbank-Abfrage wird ausgeführt, wenn die "Wer ist online?"-Liste nach Benutzernamen sortiert wird.
(16.01.2020, 12: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
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
Bitte beschreibe doch mal genau, was du da jetzt "eingefügt" hast.
Seiten: 1 2