mysql中的嚴格模式 很多集成的PHP環境(PHPnow WAMP Appserv等)自帶的MySQL貌似都沒有開啟MySQL的嚴格模式,何為MySQL的嚴格模式,簡單來說就是MySQL自身對數據進行嚴格的校驗(格式、長度、類型等),比如一個整型字段我們寫入一個字符串類型的數據,在非嚴格模式下MySQL不會報錯,同樣如果定義了char或varchar類型的字段,當寫入或更新的數據超過了定義的長度也不會報錯。 我認為這個對於編程來說沒有任何好處,雖然我們盡量在代碼中做數據校驗。MySQL開啟了嚴格模式從一定程序上來講是對我們代碼的一種測試,如果我們的開發環境沒有開啟嚴格模式在開發過程中也沒有遇到錯誤,那麼在上線或代碼移植的時候將有可能出現不兼容的情況,因此在開發過程做最好開啟MySQL的嚴格模式。 如何開啟? 1.可以通過執行SQL語句來開啟,但是只對當前連接有效,下面是SQL語句:
set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
2.通過修改MySQL的配置文件,在配置文件中查找sql-mode,將此行修改成為:
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
如果查找不到sql-mode=則在[mysqld]下加入即可,推薦第二種方法,可以一勞永逸。