我有以下语句将记录插入数据库。但是对于name
字段为空值的每条记录,我都会收到以下错误:
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值。
可能导致这种情况的原因是什么?
答案 0 :(得分:0)
单词name
是保留字,不应用作列名。
请参阅https://dev.mysql.com/doc/refman/5.5/en/keywords.html
因此,为了使用它,你必须在反引号中包含该列名,即`name`