MySQL字段不能为空错误,虽然字段应该允许值为空
问题描述:
我有以下语句将记录插入到数据库中。但与name
场每个记录为空值,我得到以下错误:MySQL字段不能为空错误,虽然字段应该允许值为空
Did not insert statement:Column 'name' cannot be null
代码:
function insertintomailinglist($user_id,$mail_list,$name,$surname,$company_name,$email_address,$number){
if ($stmt = $this->link->prepare("INSERT INTO `mail_lists_list`(user_id, mail_lists_id, name, surname, company_name, email_address ,cell_number) VALUES(?, ?, ?, ?, ?, ?, ?);")){
// Bind the variables to the parameter as strings.
$stmt->bind_param("iisssss",$user_id,$mail_list,$name,$surname,$company_name,$email_address,$number);
// Execute the statement.
$stmt->execute();
// Close the prepared statement.
echo '<p> Did not insert statement:'.$stmt->error.' </p>';
$stmt->close();
}
}
如果我编辑的MySQL表,并设置默认值NULL,则语句执行。但不是没有默认值...
这是不正确的,因为我知道mysql字段应允许有一个NULL值。
这可能是什么原因造成的?
答
单词name
是保留字,不应作为列名使用。
见https://dev.mysql.com/doc/refman/5.5/en/keywords.html
因此,为了使用它,你必须在反引号来包装列名,即`name`
+0
我在数据库中将name更改为first_name,现在我只是在下一个字段中出现错误:Did不插入语句:列“姓氏”不能为空 – Marcel
设置MySQL列值默认为空将帮助解决这一问题就完事了,如果你将列定义为NOT NULL,这意味着不能输入NULL值 –
如果向我们显示表的元数据可能会有所帮助 –