Hallo TYPO3'ler,
ich habe in extbase ein Backend-Modul für einen CSV Import programmiert. Damit sich auf Dauer nicht so viel Datenmüll ansammelt, möchte ich vor jedem neuen Import die Tabelle leeren (truncate). Die removeAll() Funktion setzt die Datensätze ja lediglich auf deleted = 1.
Ich habe also mit statement() mein truncate-Statement abgesetzt und zuvor setReturnRawQueryResult auf true gesetzt:
$query = $this->createQuery();
$query -> getQuerySettings()->setReturnRawQueryResult(true);
$query -> statement('TRUNCATE TABLE tabellenname');
$query -> execute();
Das Problem: Wenn ich jetzt eine Datei hochlade, wird das truncate in der DB zwar ausgeführt, direkt im Anschluss erhalte ich aber einen Fatal Error. Das Skript bricht ab, der Import erfolgt nicht mehr. Hier die Fehlermeldung:
Fatal error: Call to a member function fetch_assoc() on a non-object in /html/typo3/typo3/sysext/core/Classes/Database/DatabaseConnection.php on line 1034
Ich konnte bisher keinen Hinweis "ergooglen", der mir weiterhelfen konnte. Ein ähnliches (!) Problem, das ich gefunden habe, war ein Core Bug :-(
Das Komische bei dem Fehler ist: ich habe auch an anderer Stelle die statement() Funktion im Einsatz, auch hier habe ich setReturnRawQueryResult(true) gesetzt. In dieser Funktion lese ich mit distinct Werte aus einer Spalte aus, um sie im Flexform in einer Selectbox anzuzeigen. Hier kommt kein Fatal Error, funktioniert einwandfrei!
Kennt jemand dieses Pänomen? So gesehen gibts als Unterschied: "select distinct" gibt Datensätze zurück, "truncate" nicht (wegen dem fetch_assoc aus der Fehlermeldung...)
(verwendete Version: TYPO3 6.1.5)
Vielen Dank schon mal für eure Hilfe!

