[MySQL+PHP] 觸發器及存儲過程等MySQL功能在PHP中實現的坑


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM