折腾了一下午,始终没有能搞定在PHP中编写事件。
因为业务需求,需要实现一个预操作的功能,即业务人员填写未来的某个要做某个操作。在这个日期到来之前,则一切照常。
想通过PHP编写MySQL Event,时间到了之后自动执行。
但碰到了几个致命的问题。
首先是多语句执行。
如果PHP中的query语句带;号,则MySQL直接将其当作query结束标识,query后面的语句就不管了,直接报SQL40006错误。
查找解决方案,提到是Delimeter的问题,可以通过指定其他的Delimeter,避免MySQL将;视为结束标识。
但是Delimeter是MySQL的CLI函数,通过PHP的接口传递根本无法识别。MySQL继续报错,不认识Delimeter。
查了StackOverflow,反正只见说不可以,没说怎么绕过这个问题去实现需求的。
想了想,准备将多个操作拆开来执行,新建多个EVENT。操作比较多,EVENT也就很多。但又碰到了一个问题,EVENT间的执行顺序是怎样的?
如果一个Event执行不成功,下一个依赖他的Event该如何处置?
感觉是个大BUG,这个需求或许就无法实现了。