首頁 >資料庫 >mysql教程 >為什麼 MySQLnd 升級後我的 MySQL INSERT 查詢失敗並顯示「錯誤的日期值:'0000-00-00'」?

為什麼 MySQLnd 升級後我的 MySQL INSERT 查詢失敗並顯示「錯誤的日期值:'0000-00-00'」?

Linda Hamilton
Linda Hamilton原創
2024-12-22 06:43:14544瀏覽

Why Does My MySQL INSERT Query Fail with

MySQL 錯誤:INSERT 查詢中的「日期值不正確:'0000-00-00'」

問題:

問題:

問題:

問題:

使用者正在嘗試透過phpMyAdmin將值插入具有日期列的表時遇到錯誤,儘管透過網站成功插入。顯示錯誤訊息:「錯誤的日期值:'0000-00-00'」。

SET GLOBAL sql_mode = '';

分析:

錯誤的根本原因與更改有關從 MySQLnd 5.0.12 升級到 5.7.11 後,在 MySQL 的 SQL 模式下。在 MySQL 5.7 中,預設啟用嚴格模式,該模式強制執行更嚴格的資料驗證規則。日期列的預設值「0000-00-00」違反了這些規則,導致錯誤。

解決方案:

要解決問題並允許插入「0000-00-00」作為有效日期值,必須停用嚴格模式。這可以透過執行以下查詢來實現:其他資訊:啟用嚴格模式透過對資料類型和值強制執行特定規則來確保資料完整性。但是,當嘗試插入不嚴格遵守這些規則的資料時,它也可能會導致錯誤。透過停用嚴格模式,使用者可以繞過這些檢查並允許插入「0000-00-00」等數據,這在某些情況下可能有效。 需要注意的是,如果資料完整性對於在您的應用程式中,您應該仔細評估禁用嚴格模式的影響。考慮實作自訂驗證和錯誤處理機制,以確保無效資料不會儲存在資料庫中。

以上是為什麼 MySQLnd 升級後我的 MySQL INSERT 查詢失敗並顯示「錯誤的日期值:'0000-00-00'」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn