折騰了一下午,始終沒有能搞定在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,這個需求或許就無法實現了。