我用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 | |
+-----------------------+----------------+------+-----+---------+----------------+
谢谢!
答案 0 :(得分:7)
这正是问题所在 - 你没有引用suggested_solution_id
。
suggested_solution_id
具有NOT NULL
约束,并且没有默认值。在查询中,您创建一行而不指定它的值。 MySQL不能将NULL
放在那里 - 因为它是NOT NULL
字段 - 并且它不能给它一个默认值 - 因为它没有默认值 - 因此它会抱怨。
答案 1 :(得分:2)
看起来好像suggest_solution_id是主键(显然是NOT NULL),它可能不是AUTO_INCREMENT字段。所以你没有在该字段中插入一个值(期望一个)。
如果情况并非如此,请尝试solution。