获取MySQL错误似乎与我正在做的事情无关

时间:2014-01-05 01:14:35

标签: php mysql

我用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    |                |
+-----------------------+----------------+------+-----+---------+----------------+

谢谢!

2 个答案:

答案 0 :(得分:7)

这正是问题所在 - 你没有引用suggested_solution_id

suggested_solution_id具有NOT NULL约束,并且没有默认值。在查询中,您创建一行而不指定它的值。 MySQL不能将NULL放在那里 - 因为它是NOT NULL字段 - 并且它不能给它一个默认值 - 因为它没有默认值 - 因此它会抱怨。

答案 1 :(得分:2)

看起来好像suggest_solution_id是主键(显然是NOT NULL),它可能不是AUTO_INCREMENT字段。所以你没有在该字段中插入一个值(期望一个)。

如果情况并非如此,请尝试solution