Php Create事件在Laravel 4 raw db语句中不起作用

Php Create事件在Laravel 4 raw db语句中不起作用,php,mysql,laravel,laravel-4,Php,Mysql,Laravel,Laravel 4,我试图在5分钟后使用Laravel的DB::statement()方法运行一个查询,但我无法让它工作。查询似乎在运行,因为没有给出错误,但事件不是在MySQL中创建的 代码如下: DB::statement(' CREATE EVENT delinactief ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 MINUTE DO BEGIN UPDATE advertenties SET i

我试图在5分钟后使用Laravel的DB::statement()方法运行一个查询,但我无法让它工作。查询似乎在运行,因为没有给出错误,但事件不是在MySQL中创建的

代码如下:

DB::statement('
    CREATE EVENT delinactief
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 MINUTE
    DO
        BEGIN
            UPDATE advertenties SET inactief = 0 WHERE id = :id;
        END
', array('id' => $adv->id));
我尝试在查询中使用分隔符,但这会导致错误。

删除开始和结束

DB::unprepared('
    CREATE EVENT delinactief
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 MINUTE
    DO
    UPDATE advertenties SET inactief = 0 WHERE id = :id;
', array('id' => $adv->id));

当您对数据库本身执行查询时(在phpMyAdmin或MySQL控制台中),它是否工作?@TomaszKowalczyk是的,如果我在开始处添加分隔符|和分隔符,它将在Sequel Pro中运行;最后。尝试用一些静态id替换:id。2。如果您收到任何错误,请在此处提及。我得到以下错误:SQLSTATE[HY000]:一般错误:2030此命令在准备好的语句协议中尚不受支持(SQL:CREATE EVENT delinactief ON SCHEDULE AT CURRENT_TIMESTAMP+INTERVAL 10秒DO UPDATE Adventies SET Inacticef=0,其中id=24;),所以我认为这意味着Laravel还不支持这个命令..这意味着PHP连接器不支持这样的查询,你必须手动执行它,否则你就倒霉了。使用unprepared代替statement使用unprepared代替statement!谢谢