[TYPO3-german] Merkwürdiges Verhalten bei DB-Abfragen
Tobias Wolf
tobias.wolf at evision.de
Fri Dec 11 20:01:46 CET 2009
Hallo zusammen,
aktuell habe folgendes Problem:
Ich habe eine Extension geschrieben welche in mehrere Submodule
aufgeteilt ist.
Jetzt ist auf einer Seite die Extension in der Konfiguration zur
Dateneingabe eingebunden und auf einer zweiten Seite sollen die Daten,
welche in die DB geschrieben worden sind als Liste ausgegeben werden.
Es wird also ein Formular angezeigt in welchem Daten eingeben werden
können. Nachdem die Daten von der Extension verarbeitet und in die DB
geschrieben worden sind wird eine kurze Bestätigungsseite angezeigt mit
einem Link zu der Ausgabe-Seite.
So weit so gut.
Wenn ich allerdings sofort auf den Link zur Ausgabe-Seite klicke, werden
mit zwar die Daten aus der DB wie gewünscht angezeigt, allerdings ohne
den aktuellen Datensatz. Dieser erscheint nach mehrmaligen Seite
neuladen (am besten per SHIFT-F5).
Da denkt doch sofort daran, ist ja klar, die Seite wurde mit Sicherheit
aus dem Cache geholt.
Nur habe ich den Cache zu Entwicklung per Typoscript ausgeschaltet:
config {
no_cache = 1
}
Zur Sicherheit habe ich in der Extension den Cache per ext_localconf.php
ausgeschaltet:
t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.user_extclass_pi1.php',
'_pi1', 'list_type', 0);
Über die Extension developerlog lasse ich mir Logausgaben zeigen, vor
die Anzahl der gefundenen Reihen der SQL-Abfrage und auch hier wird
zunächst die neue Zeile nicht mitgezählt.
Nativ per SQL sehe ich den neuen Datensatz natürlich sofort.
Die Daten werden per
$GLOBALS['TYPO3_DB']->exec_INSERTquery()
in die DB eingefügt.
Die Abfrage erfolgt mit
$res = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray()
Wisst ihr eventuell noch weitere Gründe, warum auf der Anzeigeseite der
frisch eingefügt Datensatz nicht erscheint? Werden irgendwie SQL Queries
gecachet?
Es ist wohl der eAccelerator 0.9.5.3 installiert, ich habe aber nichts
gefunden was darauf hindeutet das hier SQL Queries gecached werden, bzw.
man muss spezielle Methoden benutzen damit SQL Queries gecached werden.
Aber selbst wenn, da sich das Resultset definitv geändert hat, sollte
dieses auch zurückgegeben werden.
Leider haben mich Google und Co in dieser Sache noch nicht schlauer
gemacht.
Vielleicht hat einer von euch noch ne Idee. Ich habe versucht alle
relevanten Information zu geben, ohne einfach stupide den komplette
PHP-Code und Typo3-Config reinzukopieren. Bitte sagt Bescheid, wenn euch
bestimmte Informationen fehlen, ich werde versuchen diese so gut wie
möglich zu ergänzen.
Schonmal vielen Dank im Vorraus ...
Gruß,
Tobias Wolf
More information about the TYPO3-german
mailing list