Seite 1 von 1
Fehlerhafte SQL Abfrage
Verfasst: Do 25. Nov 2004, 09:46
von imuhcs
Servus
Mein Contenido brignt mir im Error Log folgende Fehlermeldung:
[25-Nov-2004 09:39:29] Invalid SQL: update con_phplib_active_sessions set val='c2l....bJ2xhbmcnXSA9ICcxJzsg', changed='20041125093929' where sid='91cead630859d03b735f1ff1d9b164e9' and name='sid_1_1'<br><br>
ich weiß dass die beiden <br> am ende den Bug darstellen, aber woher kommt das?
Verfasst: Do 25. Nov 2004, 10:06
von timo
die Meldung kannst du ignorieren....
die Erscheint, wenn deine Session entfernt wird (z.b. durch einen Timeout) und du dich aber noch in Contenido befindest...
Verfasst: Do 25. Nov 2004, 10:43
von imuhcs
aber er sagt doch ausdrücklich dass das sql statement nicht korrekt ist.
und die <br> am ende gehören definitiv nicht ins sql statement!!!
Verfasst: Do 25. Nov 2004, 10:49
von timo
Die <br>'s werden nicht im SQL-Statement an den Server geschickt...
und das SQL-Statement ist auch syntaktisch korrekt, nur existiert die session nicht mehr für das update...
wie gesagt kannst du die Meldung ignorieren, sie beeinflusst dich beim arbeiten nicht...ist eher eine unschönheit
Verfasst: Do 25. Nov 2004, 13:37
von emergence
der fehler geht mir jetzt langsam auf die nerven..
conlib/ct_sql.inc
in class CT_Sql bei function ac_store
wird immer zuerst das update statement ausgeführt ohne vorher zu prüfen ob überhaupt noch ein eintrag besteht....
d.h. wenn vorher überprüft wird ob der eintrag überhaupt existiert sollte das statement ausgeführt werden...
Verfasst: Do 25. Nov 2004, 13:48
von kummer
aber einem update ist es eigentlich egal, wieviele einträge betroffen sind. folglich auch, ob keiner betroffen ist. immer vorausgesetzt, das der query syntaktisch richtig ist, was ja der fall zu sein scheint.
Verfasst: Do 25. Nov 2004, 14:16
von emergence
okay hast recht, dann kommt es von wo anders her..
Verfasst: Di 7. Dez 2004, 10:15
von imuhcs
also gestern hat contenido die fehlermeldungen aber heftigst übertrieben.
gibt es denn keine möglichkeit das zu umgehen?
mein error log ist heute überlst voll:
[06-Dec-2004 15:24:49] Invalid SQL: update con_phplib_active_sessions set val='Y29udGVuaWRvOiR0aGlzLT5p....pdCc7IA==', changed='20041206152632' where sid='96f0bfd50789c742667c1cc7fb44d672' and name='contenido'<br><br>
Verfasst: Di 7. Dez 2004, 12:46
von emergence
die fehlermeldung ergibt leider keinen sinn solange wir nicht wissen welcher sql fehler mysql meldet
folgendes:
ne nette modifikation für die
conlib\db_mysql.inc
Code: Alles auswählen
$this->halt("Invalid SQL: ".$Query_String."<br><br>");
ersetzen durch
und bei function halt($msg)
nach (oder so ähnlich)
sollte
Code: Alles auswählen
$this->haltmsg("MySQL-Error: ".$this->Error." (".$this->Errno.")");
ergänzt werden
vorteile:
-> das sql statement hat keine <br><br> mehr im errorlog.txt
-> der mysql fehler den die db meldet wird mit protokolliert... ein testen bei phpmyadmin -> welchen fehler das statement liefert kann man sich dann sparen...
bitte einbauen und fehlermeldung posten...
Verfasst: Di 14. Dez 2004, 11:51
von imuhcs
ok nach den obigen Änderungen gibt cotnenido folgende Fehlermeldung im Error Log aus:
[14-Dec-2004 11:47:37] MySQL-Error: Table 'test.con_phplib_active_sessions' doesn't exist (1146)
ich weiß nicht so recht was damit anzufangen, meine DB heisst nicht test!!!
Verfasst: Di 14. Dez 2004, 12:28
von emergence
hast du irgendwo ein script eingebunden das ebenso einen connect auf die db macht ? oder hast du mal so was verwendet ?
Verfasst: Di 14. Dez 2004, 12:33
von imuhcs
nicht dass ich wüsste.
das ganze passiert wenn ich mich nur im contenido einlogge und dort ein wenig herumklicke!!!
Verfasst: Di 14. Dez 2004, 12:57
von emergence
hab jetzt mal die 4.4.4 nach test und mysql_connect durchsucht
da find ich aber nichts was dieses verhalten verursachen könnte...
ganz ehrlich zu sein, keine ahnung warum auf die db test gewechselt wird...
welche mysql version ist denn das ?
Verfasst: Mo 20. Dez 2004, 14:40
von imuhcs
so ich habe alle meine module durchsucht, und ein falsch konfigurierten Counter gefunden!!!
der hat in meiner lokalen Testumgebung auf die datenbank test zugegriffen, und die gabs net auf dem webserver
danke für die hilfe emergence!!!