MySql_query插入null不为0

时间:2012-11-30 09:27:40

标签: php mysql insert null

数据库:

  

DAlanding int(11)Ja NULL

$DAlanding = $_POST['DAlanding '];

if ($DAlanding =="")
{
    $DAlanding =NULL;
}
$sql = "INSERT INTO cardex (DAlanding) VALUES('$DAlanding')";

但现在我需要它来约会:

  

DAdate date Ja NULL

$DAdate  = $_POST['DAdate '];

if ($DAdate  =="")
{
    $DAdate  = 'NULL';
}
$sql = "INSERT INTO cardex (DAdate) VALUES('$DAdate')";

5 个答案:

答案 0 :(得分:1)

要插入NULL,您需要在没有引号的情况下传递它。

$DAlanding = isset($_POST['DAlanding']) && $_POST['DAlanding'] != '' ? "'" . $_POST['DAlanding'] . "'" : 'NULL';

$sql = "INSERT INTO cardex (DAlanding) VALUES($DAlanding)";

您应该查找SQL注入,因为您正在插入原始用户输入,从而创建漏洞。

答案 1 :(得分:0)

将NULL设为字符串“NULL”。那么SQL就是正确的。

 if ($DAlanding =="")
    {
        $DAlanding ="NULL";
    }
  $sql = "INSERT INTO cardex (DAlanding) VALUES($DAlanding)";

答案 2 :(得分:0)

我很惊讶您在尝试将STRING值插入int列时未收到错误。
通常,您省略了不想在

中插入任何内容的列

答案 3 :(得分:0)

将数据类型设置为varchar或char。如果我们使用int将其自动分配0到相应的字段。

答案 4 :(得分:0)

试试这个

if ($DAdate  =="")
{
    $DAlanding= NULL;
}
else{
    $DAlanding= "'".$DAdate."'";
}

$sql = "INSERT INTO cardex (DAlanding) VALUES($DAlanding)";

删除$ DAlanding之前和之后