MySQL 嚴格模式

最近把舊的php code原封不動地移植到新的機器上時,發現原來的api竟然動不了,似乎是種魔咒,一切如同莫非定律般的發生。環境幾乎都來原來的主機相同,後來發現原本mysql的設定值不一樣。
原來之前在設計table scheme都沒有考慮到預設值,之前有資料庫會去幫你處理問題,不過升級到mysql 5.6.6以上的版本sql_mode會有預設值。

sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

因此只要修改設定檔my.cnfsql_mode中的STRICT_TRANS_TABLES拿掉就可以,不過還是建議好好refactor會比較實在。

comments powered by Disqus