MySQL字段不能为空错误,尽管该字段应允许该值为null

时间:2015-06-21 11:18:35

标签: php mysql

我有以下语句将记录插入数据库。但是对于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值。

可能导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:0)

单词name是保留字,不应用作列名。

请参阅https://dev.mysql.com/doc/refman/5.5/en/keywords.html

因此,为了使用它,你必须在反引号中包含该列名,即`name`