2016-05-23 150 views
0

今天早些時候,我在一個新版本的MYSQL和PHP中爲我們的項目設置了一個新的開發服務器(5.7與MySQL比較5.6,PHP比5.6高5.6)我發現了一些奇怪的東西。老版本的PHP/MYSQL是否有NOT NULL列的默認值?

我們的一些插入(通過Kohana的ORM系統)沒有缺省值的所有NOT NULL列的條目。這奇怪地不會在當前的開發服務器中導致錯誤,行列填充了一個空字符串。另一方面,在新服務器中它會導致錯誤(可預測)。

使用Kohana框架版本3的代碼庫是完全一樣的。只是爲了清楚我是團隊的新成員,我沒有參與制作這個。

+0

不,不會改變語言或數據庫服務器實現。表格結構或您正在使用的ORM中可能會發生變化。你會爲每個服務器的這個表產生一個「SHOW CREATE TABLE table_name」嗎?請使用代碼塊將輸出編輯到您的問題中。 – halfer

+1

感謝您的回覆,我找到了問題。顯然,該應用程序不是使用嚴格模式開發的。 – elite5472

+0

Mysql 5.6開始嚴格模式是默認開啓的,它也對我的新服務造成同樣的問題。 – Faraz

回答

0

不理想,但是整個應用程序是在沒有使用嚴格模式的情況下開發的。這使得它被省略了,而空列被賦予了一個默認值,如空字符串。