使用MySQL事件进行Zend DB查询

时间:2013-07-30 19:39:48

标签: mysql zend-framework mysqli zend-db zend-db-table

我尝试使用Zend DB执行此查询:

$this->db->query("
            CREATE EVENT turn_tonormal
            ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE COMMENT 'Return the calendar state to NORMAL'
            DO
            SELECT type FROM calendar WHERE id = 64;
            UPDATE calendar SET type = IF(type = 'OK', 'OK', 'NRML') WHERE id=64;
            DROP event turn_tonormal;
        ");

在phpMyAdmin QSL中一切顺利,我在UPDATE之前使用if条件创建此事件 但是从php我收到这个错误:

 Mysqli prepare error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE mind_calendar SET timeband_type = IF(timeband_type = 'PRENOTED', 'PRENOTE' at line 5

我认为这是因为Zend DB查询只执行一个查询而且我有多个查询。我怎么解决。

先谢谢你,感谢英语不好:)

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是使用带有cron的PHP脚本来完成这项工作,这样你就可以放弃EVENT要求。 Keeps是可移植的,因为shell_exec()在所有环境中都不可能,如果你问我,它不符合'好'的解决方案。