将NULL变量插入数据库

Jon*_*atz 0 php mysql null

我有变量设置为NULL,我试图插入数据库但由于某种原因,他们继续提交为'0'.我很肯定,我试图插入的列允许NULL并且默认设置为NULL.继承我的代码:

$insert = NULL;
$query = mysql_query("INSERT INTO `table1` (column1) VALUES ('$insert')") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

Nea*_*eal 5

警告:

请不要使用mysql_*新代码的功能.它们不再维护,社区已开始弃用过程.相反,您应该了解准备好的语句并使用PDOMySQLi.

如果您希望它NULL(并且您真的真的仍然想要使用mysqli_*)在数据库中,您可以执行以下操作:

$insert = NULL;
$query = mysql_query("INSERT INTO `table1` (column1) VALUES ("
                         .(($insert===NULL)?
                                 "NULL":
                                 "'".mysql_real_escape_string($insert)."'").
                     ")") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

但这可能导致恶意的SQL注入,建议使用.

鲍比表


所以:总而言之,你应该使用预备语句.

您可以像这样使用MySQLi:

        $dbHandle = new mysqli(...);
        $query = "INSERT INTO `table1` (column1) VALUES (?)";
        $statement = $dbHandle->prepare($query);
        if($statement){
            $statement->bind_param('s', $insert);
            if(!$statement->execute()){
                echo "Statement insert error: {$statement->error}";
            }
            $statement->close();
        }
        else {
            echo "Insert error: {$dbHandle->error}";
        }
Run Code Online (Sandbox Code Playgroud)