我已经使用XAMPP在本地安装了MyBB,并且运行顺利。但当我在服务器上执行时,它会给我错误。
MyBB自己创建并插入了大量数据,我发现错误出现在以下查询中:
INSERT INTO... VALUES ('NULL', ...)
在我的localhost上,MySQL(两者都是5.5.27)接受这种查询,其中"NULL"作为字符串传递。但在服务器中,它给出了一个错误#1366,正如标题所说。
问题是,更改查询不是一个选项,因为它是一个很大的查询,所以有人知道我可以在哪里配置它吗?
提前谢谢。
问题是MySQL(在本例中)的'NULL'
与NULL
不同。
由于该列需要数字数据,因此您的语句不起作用,而以下语句可以起作用:
INSERT INTO ... VALUES (NULL, ...)
也许您可以更改服务器运行的MySQL模式。
我认为您的MySQL Server是在严格模式下运行的。
这可以通过两种方式之一解决,但你可能必须让你的托管公司为你做这件事。
方法1:打开MySQL安装目录中的"my.ini"文件,然后查找以下内容。。。
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
替换为:
# Set the SQL mode to strict
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
方法2:
您可以在数据库管理工具(如phpMyAdmin)中运行SQL查询,该工具通常可以从web托管控制面板中找到:
SET @@global.sql_mode= '';