-2

データベース:

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')";
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

データ型を 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 に答える
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 に答える