我有一个系统,运行在数百个网站上,我第一次得到一个错误。我希望有人能告诉我是什么导致了这个错误,所以我可以尝试删除它。
这个问题出现在试图添加页面时。
INSERT INTO pages (parent, name, type, sort) VALUES ('0', 'test', 'text', '37.5');
这将显示以下错误。
[nativecode=1364 ** Field 'text' doesn't have a default value]
我认为这可能是基于代码的,所以我上传了phpMyAdmin,错误仍然存在。
有一个名为
text
的文本字段。这没有默认值,但是它从来不需要默认值。到目前为止,没有一个还不错。当我试图设置此服务器上的默认字段时,会出现以下错误。
#1101 - BLOB/TEXT column 'text' can't have a default value
基本上,问题是-发生了什么?
MySQLi和MySQL不同吗?可能是这个原因。
我的服务器运行的是mysql 5.0.5,这个服务器运行的是mysql 5.0.51a。我能安全地假设这不是原因吗?
有没有人对这件事的原因有什么想法甚至猜测?
最佳答案
我意识到这是一个老问题,但我也遇到了类似的问题,我通过谷歌找到了这个问题,但没有答案,所以如果其他人也这样做,我的解决方案是:
在我的例子中,我试图在我的本地机器上运行购物车,我不断地得到数据库错误,就像问题中提到的那样。我使用的是MySQL 5.5.12,结果发现我选择的购物车中的php是为一个较旧的MySQL版本编写的,这会不断地标记错误和不兼容性。我不建议你有类似的问题降级,幸运的是没有必要!
这里需要的是禁用MySQL strict模式,这会导致兼容性问题。为此,您只需通过phpMyAdmin/SQLyog(或所选接口)运行以下查询:
SET @@global.sql_mode='';
只是澄清一下,这是两个单引号(')。
有关禁用MySQL strict模式的详细信息或其他方法,请参阅此网站:
http://nickbartlett.com/wordpress/how-to-turn-off-mysql-strict-mode/
关于mysql - MySQLi-MySQLi和一个神秘错误的故事,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3970439/