用了一个开源项目,在使用的时候出现错误:SQLSTATE[HY000]: General error: 1364 Field 'catepic' doesn't have a default value
MySQL 1364 错误提示:#1364 - Field "catepic" doesn't have a default value。大概意思是:catepic字段没有默认的数值;也就是说我们没有为其分配数值,而表中此字段也没有设置默认值。这是MySQL5出来后搞出来的东东,认真看一下my.ini文件中有这样一段:
my.ini中相关代码
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION"
假如你无法看到my.ini,你可以执行以下SQL命令。
SQL代码
Select @@GLOBAL.sql_mode;
解决办法有两种:
第一种:数据库设计时,为可能没有数据的字段设置默认值。
第二种:设置SQL的模式,此有两种方法:
(1)配置my.ini,去掉:STRICT_TRANS_TABLES
my.ini配置代码
# Set the SQL mode to strict # sql-mode="STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION" sql-mode="NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION"
(2)运行SQL命令。注:此命令需要权限!
SQL代码
SET @@GLOBAL.sql_mode="NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION";
可以直接用phpmyadmin运行上述SQL的命令即可。