Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL字段不能为null错误,尽管该字段应允许值为null_Php_Mysql - Fatal编程技术网

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

Php MySQL字段不能为null错误,尽管该字段应允许值为null,php,mysql,Php,Mysql,我使用下面的语句将记录插入数据库。但是,如果每个记录的name字段为空值,我会得到以下错误: Did not insert statement:Column 'name' cannot be null 代码: 函数插入邮件列表($user\u id、$mail\u list、$name、$姓氏、$company\u name、$email\u address、$number){ 如果($stmt=$this->link->prepare(“插入到`邮件列表'”(用户id、邮件列表id、姓名、姓

我使用下面的语句将记录插入数据库。但是,如果每个记录的
name
字段为空值,我会得到以下错误:

Did not insert statement:Column 'name' cannot be null
代码:

函数插入邮件列表($user\u id、$mail\u list、$name、$姓氏、$company\u name、$email\u address、$number){
如果($stmt=$this->link->prepare(“插入到`邮件列表'”(用户id、邮件列表id、姓名、姓氏、公司名称、电子邮件地址、单元号)值(?,,,,,,,,,,,,,?);){
//将变量作为字符串绑定到参数。
$stmt->bind_参数(“iissss”、$user_id、$mail_list、$name、$姓氏、$company_name、$email_address、$number);
//执行该语句。
$stmt->execute();
//关闭准备好的语句。
echo'没有插入语句:'.$stmt->错误'

'; $stmt->close(); } }
如果我编辑mysql表,并将默认值设置为NULL,则执行该语句。但不是没有默认值

这是不对的,因为我知道mysql字段应该允许有空值


可能的原因是什么?

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


因此,为了使用它,您必须将该列名用反勾号括起来,即`name`

将mysql列值设置为default NULL将有助于解决此问题,如果您将列定义为NOT NULL,这意味着不能输入NULL值。如果您向我们显示表的元数据,我将数据库中的name更改为first_name,编辑可能会有所帮助,现在我在下一个字段上得到了一个错误:没有插入语句:“姓氏”列不能为空
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();
            }
    }