-2

数据库:

DAlanding int(11) Ja NULL

$DAlanding = $_POST['DAlanding '];

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

但现在我需要它来约会:

DAdate 日期 Ja NULL

$DAdate  = $_POST['DAdate '];

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

5 回答 5

1

为了插入NULL,您需要在不带引号的情况下传递它。

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

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

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

于 2012-11-30T09:33:35.933 回答
0

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

 if ($DAlanding =="")
    {
        $DAlanding ="NULL";
    }
  $sql = "INSERT INTO cardex (DAlanding) VALUES($DAlanding)";
于 2012-11-30T09:31:14.917 回答
0

STRING我很惊讶您在尝试将值插入int列时没有收到错误。
通常您会省略不想插入任何内容的列

于 2012-11-30T09:31:52.750 回答
0

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

于 2012-11-30T09:35:05.900 回答
0

试试这个

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

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

在 $DAlanding 之前和之后删除 '

于 2012-11-30T09:35:08.753 回答