php - 使用 MySQL 事件查询

标签 php mysql mysqli zend-framework zend-db

我尝试使用 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 查询只执行一个查询,而我有不止一个。我该如何解决。

最佳答案

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

关于php - 使用 MySQL 事件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17955911/

相关文章:

java - 在多台计算机上管理 SQL

javascript - 如何修改php中的json_encode函数文件?

PHP mysqli 打印数组问题

php - 我有电子邮件和密码 session 变量,但无法获取其他 session 变量(PHP、MySQL)

php - jquery选择器,最接近, sibling 组合

php - Node.js 不接受 mongodb 中数据库的间接身份验证

mysql - 查询创建 - 我是否使用 SUM、Group 等?

php - 有趣的是,数据没有插入到 mysql 表中

php - 我们可以在 Codeigniter 中连接多个数据库吗?

php - MySQL 将到期时间戳与当前时间 NOW() 进行比较