Seite 1 von 1

Schleichender SQL-Fehler

Verfasst: Di 9. Dez 2003, 15:19
von cdraschl
Hallo,

nachdem ich eine Site gebaut habe, die mittlerweile ueber 150 einzelne Seiten umfasst, tritt ploetzlich ein seltsames problem auf:
In einem Template werden zwei Navigationen eingebunden, die auf zwei verschiedene Baeume gebunden werden sollen. Waehlt man nun einen Teilbaum aus, so verschwindet die Auswahl nach dem Bestaetigen und es steht wieder "-- kein --" da. Resultierend daraus ist natuerlich die Seite leer, und die Navigationen werden nicht angezeigt.
Im errorlog.txt steht folgender Eintrag:

Code: Alles auswählen

[09-Dec-2003 14:52:12] Invalid SQL: SELECT
                        *
                     FROM
                        con_container_conf
                     WHERE
                        idtplcfg = '14'
                     ORDER BY
                        number ASC<br><br>
[09-Dec-2003 14:52:12] next_record called with no query pending.
Leider habe ich keinen Shell-Zugang zu dem Server, auf dem das CMS installiert ist. Das Problem tritt erst jetzt auf, zuvor hat noch alles tadellos funktioniert.

Vielleicht hatte jemand das Problem schon mal und weiss hier weiter. Contenido 4.4.2 ist im Einsatz, mit PHP 4.3.2

mfg
/cd

Verfasst: Di 9. Dez 2003, 15:42
von timo
Definitiv kein Bug - ich würde eher auf ein Problem mit der Datenbank tippen.

Mit der Navigation hat diese Fehlermeldung auch sehr warscheinlich nichts gemeinsam. Schau da nochmal genau nach. Ich verschiebe das hier erstmal.

Verfasst: Di 9. Dez 2003, 15:46
von cdraschl
ist mir klar, dass das problem mit der navigation nichts zu tun hat. nur, die frage ist: _warum_ tritt das auf? wenn ich eine moeglichkeit haette, in die datenbank-logs reinzuschauen, dann wuerde ich es tun. aber meine moeglichkeiten sind ziemlich begrenzt. nicht mal ein interface fuer die db hab ich da. leider....

/cd

Verfasst: Di 9. Dez 2003, 15:59
von emergence
folgendes...

füge bei conlib/db_mysql.inc bei ca zeile 125 anstelle von

Code: Alles auswählen

    if (!$this->Query_ID) {
      $this->halt("Invalid SQL: ".$Query_String."<br><br>");
    }
folgendes ein...

Code: Alles auswählen

    if (!$this->Query_ID) {
      $this->halt("Invalid SQL: ".$Query_String);
      $this->halt("MySQL-Error: ".$this->Error." (".$this->Errno.")");
    }
das hat den vorteil das der mysql fehler der von der db gemeldet wird im errorlog mit eingetragen wird...

vielleicht hilft dir das etwas mehr bei der fehler suche... ich finds praktisch...

ein eintrag in der errorlog.txt sieht dann so aus:
zb:

Code: Alles auswählen

[09-Dec-2003 16:02:51] Invalid SQL: SELECT x,* FROM con_area ORDER BY `name` ASC, `parent_id` ASC
[09-Dec-2003 16:02:51] MySQL-Error: You have an error in your SQL syntax near '* FROM con_area ORDER BY `name` ASC, `parent_id` ASC' at line 1 (1064)

Verfasst: Di 9. Dez 2003, 17:07
von cdraschl
danke fuer die anregung. hab derweil noch mal von vorn angefangen, auf einem test-rechner. da trace ich dann mit, wann welcher fehler auftritt.

mfg
/cd