[英]Fatal error after update MySQL5.6 to MariaDB10.3 - caused by sql strict mode?
我的 ISP 已更新托管我的應用程序的共享服務器。 它涉及從 MySQL 5.6 到 MariaDB 10.3 的更新。 ISP 寫道: MariaDB 在很大程度上與 MySQL 兼容,並且大多數 web 應用程序都可以與 Z7F96733E2087658831CE 正常工作。 換句話說,它們不會受到最小差異的影響。
但是,自從更新以來,我的許多 EDIT 和 INSERT 不再起作用並產生致命錯誤。 在我的搜索中,我發現:
在我的進一步調查中,我遇到了: https://forums.cpanel.net/threads/mariadb-10-2-disabling-strict-mode.635157/根據此線程,我了解解決方案可能是在更改 sql 模式服務器設置來自:
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
至:
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
我試圖通過 DirectAdmin/PHPAdmin 變量對其進行更改。 由於它是共享服務器,因此我不允許更改設置,因此無法檢查(需要超級權限)。
我現在有3個問題:
建議非常感謝。
該問題是由向數據庫寫入空值引起的。 如果表單中允許空值,則將其保存為空字符串“”。 但是,如果數據庫中的字段是 INT 或 DOUBLE 類型,則會導致錯誤。 要解決此問題,需要將數據庫表中的字段更改為 VARCHAR 類型。 另一種選擇是將查詢更改為將空字符串寫入 INT、DOUBLE 類型的 0 值。 將字段類型更改為 VARCHAR 是更簡單的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.