[Frage] Fatal Error bei Verwendung von setReturnRawQueryResult TYPO3-Version: 6.1.1

  • nitsrek nitsrek
    Typ im Roten Hemd
    0 x
    3 Beiträge
    0 Hilfreiche Beiträge
    15. 11. 2013, 10:01

    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:

    1. $query = $this->createQuery();

    1. $query -> getQuerySettings()->setReturnRawQueryResult(true);

    1. $query -> statement('TRUNCATE TABLE tabellenname');

    1. $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:

    1. 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!


  • 1
  • deejaymyjules deejaymyj...
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    27. 01. 2014, 16:44

    Ich stehe aktuell vor genau demselben Problem, jemand schon eine Lösung gefunden?

  • nitsrek nitsrek
    Typ im Roten Hemd
    0 x
    3 Beiträge
    0 Hilfreiche Beiträge
    28. 01. 2014, 13:27

    Ich selbst leider nicht, würde sonst den Beitrag aktualisieren. Ich hoffe auch noch auf DEN Hinweis...

  • jansch jansch
    Padawan
    0 x
    31 Beiträge
    2 Hilfreiche Beiträge
    27. 06. 2014, 19:33

    Der Fehler ist hier erklärt:
    http://forge.typo3.org/issues/48728

    Kurzgesagt: Die Funktion ist nicht dafür ausgelegt irgendwas anderes als Select-Statements auszuführen

  • nitsrek nitsrek
    Typ im Roten Hemd
    0 x
    3 Beiträge
    0 Hilfreiche Beiträge
    27. 06. 2014, 22:55

    Hallo jansch,
    danke für den Link! Kennst du eine Möglichkeit, ein truncate auszuführen?

  • lukinbg lukinbg
    T3PO
    0 x
    31 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2014, 10:34

    Im Controller kann man auch

    1. $db = $GLOBALS['TYPO3_DB']->sql_query('TRUNCATE TABLE tabellenname');

    direkt nutzen.

  • 1