Php 得到的MySQL错误似乎与我正在做的事情无关
我用PHP编写了这个MySQL查询:Php 得到的MySQL错误似乎与我正在做的事情无关,php,mysql,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.", NO
$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
但这怎么可能呢?:)我从未在查询中引用建议的\u解决方案\u 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 | |
+-----------------------+----------------+------+-----+---------+----------------+
谢谢 这正是问题所在-您没有参考
建议的解决方案\u id
建议的\u解决方案\u id
具有非空
约束,并且没有默认值。在查询中,您创建了一行,但没有为其指定值。MySQL不能将NULL
放入其中-因为它是notnull
字段-而且它不能给它一个默认值-因为它没有默认值-因此它会抱怨。这正是问题所在-您没有引用建议的解决方案\u id
建议的\u解决方案\u id
具有非空
约束,并且没有默认值。在查询中,您创建了一行,但没有为其指定值。MySQL不能将NULL
放入其中-因为它是一个notnull
字段-它不能给它一个默认值-因为它没有默认值-因此它会抱怨。看起来建议的解决方案id是主键(显然不是NULL),它可能不是一个自动增量字段。因此,您没有向该字段插入值(该字段需要一个值)
如果不是这样的话,试试这个。看起来建议的解决方案id是主键(显然不是空的),它可能不是一个自动递增字段。因此,您没有向该字段插入值(该字段需要一个值)
如果不是这样的话,试试这个。建议的解决方案id是非空字段吗?@JeroenJK我刚刚添加了表的描述。这有帮助吗?您的表清楚地说明了问题,大多数字段不能是
NULL
,但所有字段的默认值都是NULL
。如果你不发送一个值,那是行不通的。只需将默认值设置为0
(或类似值),或允许字段为NULL
。所有NULL=NO
的字段都必须包含某些内容。如果它具有自动增量
,它将始终具有值,但建议的解决方案id
没有该值。如果希望该列可以为空,Null
应为YES
。否则,在插入行时应始终为其指定一个值---notnull
意味着一个字段不能为NULL
(空)--你知道这是否是旧版本MySQL不会给出的一种新错误吗?我刚刚更新了我的MySQL,这就开始发生了。“建议的解决方案\u id”是否为非空字段?@JeroenJK我刚刚添加了表的描述。这有帮助吗?您的表清楚地说明了问题,大多数字段不能是NULL
,但所有字段的默认值都是NULL
。如果你不发送一个值,那是行不通的。只需将默认值设置为0
(或类似值),或允许字段为NULL
。所有NULL=NO
的字段都必须包含某些内容。如果它具有自动增量
,它将始终具有值,但建议的解决方案id
没有该值。如果希望该列可以为空,Null
应为YES
。否则,在插入行时应始终为其指定一个值---notnull
意味着一个字段不能为NULL
(空)--你知道这是否是旧版本MySQL不会给出的一种新错误吗?我刚刚更新了我的MySQL,这就开始发生了。你知道这是否是一种新的错误,旧版本的MySQL不会出现这种错误吗?我刚刚更新了我的MySQL,这就开始发生了。你知道这是否是一种新的错误,旧版本的MySQL不会出现这种错误吗?我刚刚更新了我的MySQL,这就开始发生了。你知道这是否是一种新的错误,旧版本的MySQL不会出现这种错误吗?我刚刚更新了我的MySQL,这就开始发生了。你知道这是否是一种新的错误,旧版本的MySQL不会出现这种错误吗?我刚刚更新了MySQL,这一切就开始发生了。