我有这个用PHP编写的MySQL查询:
$insert_suggested_solution_comment = "insert into suggested_solution_comments (problem_id , commenter_id, comment, solution_part , date , guid) values ( ".$problem_id." , ".$member_id." , '".$comment."' , ".$recent_topic_id.", NOW() , '".$md5c."' )" ;
但我得到的错误就是这个:
Field 'suggested_solution_id' doesn't have a default value
但那怎么可能呢?:)我从未在查询中引用suggest_solution_id.
我三重检查,是的,这个错误确实来自这个查询.有谁知道为什么会这样?
这就是表格的样子:
mysql> describe suggested_solution_comments; +-----------------------+----------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------------+----------------+------+-----+---------+----------------+ | comment_id | int(10) | NO | PRI | NULL | auto_increment | | problem_id | int(10) | NO | | NULL | | | suggested_solution_id | int(10) | NO | | NULL | | | commenter_id | int(10) | NO | | NULL | | | comment | varchar(10000) | YES | | NULL | | | solution_part | int(3) | NO | | NULL | | | date | date | NO | | NULL | | | guid | varchar(50) | YES | UNI | NULL | | +-----------------------+----------------+------+-----+---------+----------------+
谢谢!
这正是问题 - 你没有参考suggested_solution_id
.
suggested_solution_id
有NOT NULL
约束,没有默认值.在查询中,您创建一行而不指定它的值.MySQL无法放入NULL
- 因为它是一个NOT NULL
字段 - 它不能给它一个默认值 - 因为它没有默认值 - 因此它会抱怨.