在最近從MAMP 遷移到Apache、MySQL 和PHP 時,執行INSERT 指令突然導致下列錯誤:
SQLSTATE[HY000]: General error: 1364 Field 'display_name' doesn't have a default value
此問題是由於MySQL 預設行為的變更而引起的。在 MySQL 版本 5.6.13 中,經常啟用 STRICT 模式,這會強制執行更嚴格的資料驗證規則。因此,沒有預設值的欄位在插入時不能再留空。
要解決此問題,需要變更 MySQL STRICT 模式設定。有兩種可能的解決方案:
臨時更改:在MySQL 控制台中執行以下命令:
SET GLOBAL sql_mode='';
這將暫時停用STRICT所有後續查詢的模式。
進行上述任一更改後,重新啟動 MySQL 伺服器,INSERT 命令應該成功執行,並且不會出現「欄位沒有預設值」錯誤.
以上是為什麼我在 MySQL 嚴格模式下收到「欄位沒有預設值」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!