很多整合的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]下加入即可,推薦第二種方法,可以一勞永逸。