MyBB.de Forum
Mysql Error bei Foren-Ansicht - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html)
+--- Forum: MyBB 1.4.x (https://www.mybb.de/forum/forum-51.html)
+---- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-52.html)
+---- Thema: Mysql Error bei Foren-Ansicht (/thread-16389.html)

Seiten: Seiten: 1 2 3


RE: Mysql Error bei Foren-Ansicht - tomtom - 21.06.2010

auch ich bekomme seit gestern ständig Fehlermeldungen, hatte heute früh, 1400 Mails, immer die gleichen.


Your copy of MyBB running on Hundeforum HundeLexi (http://www.hundelexi.de) has experienced an error. Details of the error include:
---
Type: 20
File: (Line no. 0)
Message
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 ')
ORDER BY p.dateline' at line 4
Query:
SELECT u.*, u.username AS userusername, p.*
FROM mybb_posts p
LEFT JOIN mybb_users u ON (u.uid=p.uid)
WHERE p.pid IN ()
ORDER BY p.dateline


Ich weiß leider nicht, wo ich da suchen kann Thinking


RE: Mysql Error bei Foren-Ansicht - StefanT - 21.06.2010

Welche Plugins benutzt du?


RE: Mysql Error bei Foren-Ansicht - kettwiesel - 21.06.2010

ich vermute mal das ist sein IRC Chat


RE: Mysql Error bei Foren-Ansicht - StefanT - 21.06.2010

Wie kommst du denn jetzt darauf?


RE: Mysql Error bei Foren-Ansicht - tomtom - 21.06.2010

Habe am Board seit Wochen nichts verändert, die Fehlermeldungen hageln aber erst seit gestern.

Habe folgende Plugins:

Ads after first post (2.2)

Advanced Forum Signatures (1.2.0) deaktiviert

Birthday Mailer (2.0.1)

Game Section (1.2)

Google SEO (1.1.13)

Hello World! (1.0) deaktiviert

Overview (3.2.1)

Profile Twitter (1.1)

Skype MyBB! (1.4.1)

Trash Can Forum (2.0)

Users Browsing Thread (1.1)

Welcome-Activate-New Users-Missyou box (1.6)

Profile YouTube Channel (1.2)


RE: Mysql Error bei Foren-Ansicht - kettwiesel - 21.06.2010

(21.06.2010, 10:59)StefanT schrieb: Wie kommst du denn jetzt darauf?

Weil ich mich gerade in seinem Forum umsehe, und der IRC Chat haut einen gleich Sicherheitswarnungen um die Ohren.
aha, ich hab gerade was gefunden....

SQL-Error #1064

Aufgabe:
Export der Datenbank-Struktur und -Inhalte via WBB 2.x ACP mit anschließendem Import in eine neue Datenbank via phpMyAdmin, um sämtliche Inhalte des alten Boards über die Datenimport-Funktion auf ein neues Board übertragen zu können.

In meinem Fall:
- altes Board: WBB 2.3.4
- neues Board: WBB Lite 2.0.1


Problem:
Wenn man bei WBB 2.x über das ACP ein Datenbank-Backup erstellt, um dieses via phpMyAdmin in eine neue Datenbank zu importieren, bekommt man einen SQL-Error (#1064). Das Ganze liegt wohl darin begründet, dass Feldnamen nicht in Backticks sind - das führt zu Komplikationen bei Namen, die gleichzeitig MySQL-Schlüsselwörter sind.


Lösung:
Mit Hilfe von MySQLDumper (kostenloses PHP/Perlskript, um MySQL-Daten zuverlässig zu sichern und gegebenenfalls wiederherzustellen) kann man die Datenbank in ein anderes Format umwandeln, welches die "Fehler" des ACP-Exports automatisch korrigiert.


Schritt für Schritt:
MySQLDumper herunterladen auf: http://www.mysqldumper.de

> Die heruntergeladenen Dateien auf den Webserver laden
> Installations-Datei über den Browser aufrufen
> SQL-Zugang für den MySQLDumper einrichten
> Im Admin-Bereich unter "Verwaltung" die SQL-Datei hochladen, welche über das ACP erstellt wurde.
> Anschließend ebenfalls unter "Verwaltung" das Tool "Backup-Konverter" ausführen
> Bei "zu konvertierende Datei" die soeben hochgeladene SQL-Datei auswählen und irgend einen Namen für die neue Datei vergeben
> Konvertierung starten
> Nach erfolgreicher Konvertierung im Bereich "Wiederherstellung" die soeben erstellte MDF-Datei auswählen
> Anschließend vor dem Dateinamen das Häkchen setzen und oben links auf "Wiederherstellen" klicken
> Fertig Smile


Ich hoffe ich kann damit ein paar Leuten helfen ...


PS: Die einfachste Lösung ist immer noch, wenn man direkten Zugriff auf die Datenbank des alten Boards hat. Diese Anleitung ist daher für all diejenigen, die wie ich den entsprechenden Zugriff nicht haben, sondern lediglich die ACP-Backup-Funktion nutzen können.

http://forum.fachinformatiker.de/datenbanken/124836-sql-error-1064-fehlersuche.html
################################

haha, bei mir ist der Fehler weg....

1. Das Zauberwort heißt, Verwaiste Daten suchen,

2. UTF8 Konventierungen durchführen lassen

3. Datenbank optimieren lassen.

und worla, der Fehler ist verschwunden!


RE: Mysql Error bei Foren-Ansicht - Slash - 21.06.2010

Ich hab das Prefix Plugin einfach wieder installiert aber deaktiviert.

Edit:
Gibt's irgend eine Möglichkeit das Plugin ganz zu deinstallieren? Es fügt einfach Zahlen vor den Prefixen, die ich durch das Feature von 1.6 hinzugefügt hab.
Ich poste mal den Inhalt der Prefix.php:

PHP-Code:
<?php

function prefix_info()
{
    return array(
        
"name"        => "Prefix-Plugin",
        
"description" => "adds a prefix before the thread-subject",
        
"website"     => "http://mods.mybboard.net",
        
"author"      => "XxAnimusxX",
        
"authorsite"  => "http://www.k-under.de",
        
"version"     => "1.0",
        
"guid"        => "3fb2b1ec27e31aa2b05bb8d444bfda55",
        
"compatibility" => "15*"
        
);
}

$plugins->add_hook("forumdisplay_thread""addPrefix_forumdisplay");
$plugins->add_hook("newthread_end""addPrefix_newthread");
$plugins->add_hook("editpost_end""addPrefix_editpost");
$plugins->add_hook("editpost_do_editpost_start""savePrefix_editpost");
$plugins->add_hook("newthread_do_newthread_end""savePrefix_newthread");

$plugins->add_hook("admin_config_menu""prefix_toolsmenu");
$plugins->add_hook("admin_config_action_handler""prefix_actionhandler");


function 
prefix_toolsmenu($sub_menu)
{
        
$sub_menu[] = array(
                      
"id" => "prefix",
                      
"title" => "Prefix-Manager",
                      
"link" => "index.php?module=config/prefix"
                      
);
}



function 
prefix_actionhandler($action)
{
        
$action['prefix'] = array('active' => 'prefix''file' => 'prefix.php');
}



function 
prefix_is_installed()
{
        global 
$db;

        if (
$db->field_exists("prefix""threads"))
        {
                return 
true;
        }
        return 
false;
}



function 
prefix_install()
{
        global 
$db;

        
$db->query("ALTER TABLE ".TABLE_PREFIX."threads ADD prefix VARCHAR(126) NOT NULL");

        
$find preg_quote("{\$gotounread}");
        
$replace "{\$gotounread}{\$thread['prefix']}";
        
prefix_replace_templatesets("forumdisplay_thread"$find$replace);

        
$find preg_quote("trow2\"><input");
        
$replace "trow2\">{\$prefix_menu}<input";
        
prefix_replace_templatesets("newthread"$find$replace);
        
prefix_replace_templatesets("editpost"$find$replace);

        
$db->query("CREATE TABLE ".TABLE_PREFIX."prefix (
                           pid INT UNSIGNED NOT NULL AUTO_INCREMENT,
                           title VARCHAR(126) NOT NULL,
                           fid TEXT NOT NULL,
                           gid TEXT NOT NULL,
                           PRIMARY KEY (pid)
        )"
);
}



function 
prefix_uninstall()
{
        global 
$db;

        
$db->query("ALTER TABLE ".TABLE_PREFIX."threads DROP prefix");

        
$find preg_quote("{\$gotounread}{\$thread['prefix']}");
        
$replace "{\$gotounread}";
        
prefix_replace_templatesets("forumdisplay_thread"$find$replace);

        
$find preg_quote("trow2\">{\$prefix_menu}<input");
        
$replace "trow2\"><input";
        
prefix_replace_templatesets("newthread"$find$replace);
        
prefix_replace_templatesets("editpost"$find$replace);
        
        
        
$db->query("DROP TABLE ".TABLE_PREFIX."prefix");
}



function 
addPrefix_forumdisplay()
{
        global 
$thread;

        if (
$thread['prefix'])
        {
                
$thread['prefix'] = "<strong>[".$thread['prefix']."]</strong> ";
        }
}



function 
addPrefix_newthread()
{
        global 
$prefix_menu$fid;

        
$prefix_menu build_prefixmenu($fid);
}



function 
addPrefix_editpost()
{
        global 
$thread$fid$pid$prefix_menu;

        if (
$thread['firstpost'] != $pid) return false;
        
$prefix_menu build_prefixmenu($fid$thread['prefix']);
}



function 
savePrefix_editpost()
{
        global 
$mybb$thread$db;

        
$pid intval($mybb->input['prefix']);
        if (!
$thread['prefix'] && !$pid) return false;

        
$prefix $db->fetch_array($db->simple_select("prefix""title""pid=".$pid));

        if ((
$prefix['title'] == $thread['prefix']) || (!$prefix['title'] && $pid)) return false;
        
$db->update_query("threads", array("prefix"=>$prefix['title']), "tid=".$thread['tid']);
}



function 
savePrefix_newthread()
{
        global 
$mybb$db$tid;

        
$pid intval($mybb->input['prefix']);
        if (!
$pid) return false;

        
$prefix $db->fetch_array($db->simple_select("prefix""title""pid=".$pid));
        if (!
$prefix['title']) return false;

        
$db->update_query("threads", array("prefix"=>$prefix['title']), "tid=".$tid);
}



function 
build_prefixmenu($fid 0$selected "")
{
        global 
$mybb$db;
        if (!
$fid) return false;

        
$query $db->simple_select("prefix");
        
$menu "";
        while (
$prefix $db->fetch_array($query))
        {
                
$checked "";
                
$gids explode(","$prefix['gid']);
                
$fids explode(","$prefix['fid']);

                
$group in_array($mybb->user['usergroup'], $gids);
                if ((
in_array($fid$fids) && $group) || (!$prefix['fid'] && $group))
                {
                        if (
$prefix['title'] == $selected$checked " selected";
                        
$menu.="<option value=\"".$prefix['pid']."\"".$checked.">".$prefix['title']."</option>";
                }
        }

        if (
$menu)
        {
                return 
"<select name='prefix'><option value=\"0\"></option>".$menu."</select> ";
        }
}



function 
prefix_replace_templatesets($template$find$replace)
{
        global 
$db;

        
$query $db->simple_select("templates""template, tid""title='".$template."'");
        while (
$template $db->fetch_array($query))
        {
                
$tid $template['tid']; $body $template['template'];
                
$body preg_replace("!".$find."!"$replace$body);

                
$db->update_query("templates", array("template" => $db->escape_string($body)), "tid=".$tid);
        }
}

?>



RE: Mysql Error bei Foren-Ansicht - StefanT - 22.06.2010

Du musst das Plugin deinstallieren, dann kannst du es löschen.


RE: Mysql Error bei Foren-Ansicht - Slash - 22.06.2010

Wenn ich es deinstalliere krieg ich wieder den blöden Error.
Ich müsste die vom Prefix geänderten Datenbanken finden und verändern,
aber das ist leider nicht so leicht.


RE: Mysql Error bei Foren-Ansicht - StefanT - 22.06.2010

Zum einen Deinstalliert sich das Plugin korrekt, zum anderen kann ein nicht vorhandenes Plugin nicht den Fehler auslösen.