[Frage] eigener scheduler task [Gelöst] TYPO3-Version: -

  • mic187 mic187
    Padawan
    0 x
    30 Beiträge
    1 Hilfreiche Beiträge
    10. 03. 2017, 16:43

    versuche gerade einen eigenen task zu erstellen.
    leider macht er die select abfrage nicht.

    [code]

    1. class PayTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask implements \TYPO3\CMS\Scheduler\ProgressProviderInterface {
    2. public function execute() {
    3.  
    4.  
    5.  
    6. $starttime = strtotime(date('Y-m-d H:i:s'));
    7. $endtime = strtotime(date('Y-m-d H:i:s',strtotime('-50 minutes')));
    8.  
    9. $where = 'capture_date BETWEEN '.$endtime.' AND '.$starttime.' AND cancellation = 0';
    10. $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid,capture_date,caputre_unique', 'fe_users', $where,'','','');
    11. ;
    12.  
    13. while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
    14. }
    [/code]

    leider kommt bei dieser ausgabe kein ergebniss. wenn ich das direkt in phpmyadmin mache bekomme ich eine ausgabe.
    was läuft hier falsch ?

    gruß michi

  • mic187 mic187
    Padawan
    0 x
    30 Beiträge
    1 Hilfreiche Beiträge
    13. 03. 2017, 16:15 - Lösung

    Hallo Julian,
    habe mit das exec_SELECTquery() mal debugt aber halt ohne exec_ hab den fehler dann gefunden.
    Jetzt läuft es und es kommt auch wasn an.

    Danke


  • 1
  • getit getit
    Jedi-Ritter
    0 x
    137 Beiträge
    4 Hilfreiche Beiträge
    11. 03. 2017, 12:16

    Die exectute()-Methode muss immer ein true oder false zurückliefern. Je nachdem ob der Task erfolgreich war oder nicht.

  • mic187 mic187
    Padawan
    0 x
    30 Beiträge
    1 Hilfreiche Beiträge
    13. 03. 2017, 07:44

    hallo getit,
    das habe ich schon aber halt nicht mitkopiert. am ende steht schon
    return true;

    Das hauptproblem ist ja das er das select nicht auflöst. die variable $res ist immer leer.

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2845 Beiträge
    105 Hilfreiche Beiträge
    13. 03. 2017, 08:56

    • Ist $res leer oder false?
    • Hast Du schon mal geschaut, was als Query tatsächlich zusammengebaut wird (Stichwort: debug_lastBuiltQuery)?

  • mic187 mic187
    Padawan
    0 x
    30 Beiträge
    1 Hilfreiche Beiträge
    13. 03. 2017, 11:17

    hallo Julian,
    ja das habe ich schonmal gemacht.

    debug_lastBuiltQuery hab ich schon getestet aber das ist leer.

    $res ist leer

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2845 Beiträge
    105 Hilfreiche Beiträge
    13. 03. 2017, 13:45

    o.O Das kann eigentlich nicht sein. Am Ende des Aufrufs von exec_SELECTquery() landet man bei der \mysqli::query() von PHP. Diese Methode hat als Rückgabe:

    @return mysqli_result|boolean For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries <b>mysqli_query</b> will return a <b>mysqli_result</b> object. For other successful queries <b>mysqli_query</b> will return true and false on failure.

    D.h. es gibt keinen Fall, wo $res leer ("", NULL, 0) sein kann. Es müsste ein mysqli_result-Objekt oder false zurückkommen.

  • mic187 mic187
    Padawan
    0 x
    30 Beiträge
    1 Hilfreiche Beiträge
    13. 03. 2017, 16:15

    Hallo Julian,
    habe mit das exec_SELECTquery() mal debugt aber halt ohne exec_ hab den fehler dann gefunden.
    Jetzt läuft es und es kommt auch wasn an.

    Danke

  • 1