1
我想格式化mysql插入語句使用php sprintf
,但這樣做插入0
而不是NULL
到記錄列。我在尋找解決此同時仍使用sprintf
格式化的方式:試圖插入NULL
,因爲它是空的時候MySQL插入到NULL INT列與PHP sprintf
$query = sprintf("INSERT INTO `efix_lines`
(EventID, Serial, SerialRequired, PartNumber,
MfgRev, DefectID, CircuitReference, CreatorID,
CreatorName, Created)
VALUES (%d, '%s', %d, '%s', '%s', %d, '%s', %d, '%s', '%s')",
$oSubmitData['EventID'],
EVL($oSubmitData['Serial'], NULL),
EVL($oSubmitData['SerialRequired'], NULL),
EVL($oSubmitData['PartNumber'], NULL),
EVL($oSubmitData['MfgRev'], NULL),
EVL($oSubmitData['DefectID'], NULL),
EVL($oSubmitData['CircuitReference'], NULL),
$oSubmitData['CreatorID'],
$oSubmitData['CreatorName'],
$pDate);
//I made this quick EVL function to help with shorthand ternary operators within my actual syntax
function EVL($var1, $var2){
return (empty($var1) ? $var2 : $var1);
};
問題是發生在DefectID
列。 sprintf
想插入一個整數作爲%d
指令,所以它插入0
而不是NULL
。我能做什麼?
絕對太棒了!我剛剛結束了使用'%s',然後從我的EVL()函數傳遞'NULL',你的函數似乎也有效! – sadmicrowave