2013-07-18 94 views
0

如果$ Time爲空,那麼在查詢中它被替換爲''。結果查詢不正確。如何避免這個問題?空值被替換爲''

$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); 
+1

'...否則{'的東西,這不是 「」 更換呢? '''你想要什麼*做什麼而不是'null'? – deceze

+0

@deceze:else {$ Time =「」; }不工作。 –

+0

應該是這樣的:INSERT INTO'schedule'('Time')VALUES(null);否則它不起作用。 –

回答

2

如果你想查詢的,而不是'2013-...'NULL,你顯然需要做更多一點。

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^^
+0

如果時間爲NULL,那麼會插入一個NULL值還是字符串「NULL」? –

+0

因爲我將「NULL」的引號省略了,所以它是SQL NULL值,而不是字符串NULL。 – deceze

-3

試試這個:

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