2017-07-17 7 views
0

MySQLのイベントマネージャにイベントを保存しようとしましたが、以下のように2つの部分があります。ZF2 MYSQLイベントマネージャカスタムクエリ

私はPHPMyAdminのを経由して成功し、それを追加しますが、ZF2 TAblegateway無い喜びとすることができます。..

どれソリューション - 直接PHPを通して今の許容だろう。..

$this->tableGateway->getAdapter()->driver->getConnection()>execute($eventSql); 

$ eventSql =

単に
"DELIMITER | 

    CREATE EVENT slacheckevent9 
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 2 MINUTE 
    DO 
    BEGIN 

    UPDATE sla AS T1, 
    (SELECT eventdata FROM eventdata WHERE eventname = 'CUSTOMER 
    CONTACTED' AND instructionid=3) AS T2 
    SET T1.actualtime=T2.eventdata WHERE T1.id = 9; 

    UPDATE sla 
    SET slasuccess= CASE 
    WHEN actualtime <= duetime THEN true 
    ELSE slasuccess 
    END 
    WHERE id = 9 
    ; 



    END | 

    DELIMITER ;"; 
+0

'' ZF2 TAblegateway no joy..'では、それよりもさらに具体的にする必要があります。エラーメッセージが出ますか?ログメッセージ?喜びがどこに行きましたか? – Crisp

+0

申し訳ありませんが、長い日でしたし、エラーメッセージがajaxクエリのデータに出力されていましたので、喜びは私の意志とともに消えていました。 – Leopard

答えて

0

$eventSql = " 
    CREATE EVENT slacheckevent9 
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 2 MINUTE 
    DO 
    BEGIN 

    UPDATE sla AS T1, 
    (SELECT eventdata FROM eventdata WHERE eventname = 'CUSTOMER 
    CONTACTED' AND instructionid=3) AS T2 
    SET T1.actualtime=T2.eventdata WHERE T1.id = 9; 

    UPDATE sla 
    SET slasuccess= CASE 
    WHEN actualtime <= duetime THEN true 
    ELSE slasuccess 
    END 
    WHERE id = 9 
    ; 



    END 
    "; 
$this->tableGateway->getAdapter()->query($eventSql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE); 
+0

DELIMITERステートメントは不要です。 – Leopard