空值被''代替

时间:2013-07-18 07:34:23

标签: php sql datetime

如果$ Time为null,则在查询中将其替换为''。结果查询不正确。如何避免这个问题?

$Time = strtotime($arrivals[$i]["time"]);
if ($Time != null)
{
$Time = strftime("%Y-%m-%d %H:%M:%S", $Time);
}

$query="INSERT INTO `Schedule` (`Time`) VALUES('".$Time."');";

结果查询:

INSERT INTO `schedule` (`Time`) VALUES('');

但应该是:

INSERT INTO `schedule` (`Time`) VALUES(null);

2 个答案:

答案 0 :(得分:2)

如果您想在查询中使用NULL而不是'2013-...',那么您显然需要做多一点。

if ($Time === null) {
    $Time = 'NULL';
} else {
    $Time = strftime("'%Y-%m-%d %H:%M:%S'", $Time);
    //                ^ note the quotes ^
}

$query = "INSERT INTO `Schedule` (`Time`) VALUES ($Time);";
//                                note: no quotes ^   ^

答案 1 :(得分:-3)

试试这个:

$query="INSERT INTO `Schedule` (`Time`) VALUES('".($Time==''?'null':$Time)."');";