2016-05-23 146 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

不理想,但是整个应用程序是在没有使用严格模式的情况下开发的。这使得它被省略了,而空列被赋予了一个默认值,如空字符串。