2011-01-06 56 views
0

我有一個MySQL的聲明,插入一些變量到數據庫中。我最近增加了2場,哪些是可選($ intLat,$ intLng),但我想它們包括在INSERT語句如果輸入:MySQL和PHP - 插入即使變量是空白的?

$query = "INSERT INTO data (notes, id, filesUploaded, lat, lng, intLat, intLng) 
      VALUES ('$notes', '$id', TRIM('$imageUploaded'), '$lat', '$long', 
        '$intLat', '$intLng')"; 
mysql_query($query); 
+0

這些字段是整數嗎?如果是這樣,你不需要用引號括起來。您可能希望將它們轉換爲intval()或(int)的整數,然後如果它們爲null,則它們將變爲0. – JAL 2011-01-06 21:17:31

回答

2

只需使用一個插件,如果變量是空的它會張貼到數據庫空

+1

只要這些字段被定義爲DEFAULT NULL,就可以。在上面的陳述中,其中一切似乎都是一個字符串,它也是有效的。 – JAL 2011-01-06 21:16:28

0

不同意Michael Stevens;如果這些值是可選的,則它們應該在數據庫中爲NULL。但是,由於您將它們引用,它們將作爲空字符串插入。從數據完整性的角度來看,這會很糟糕。

那麼...怎麼做呢?花一些時間編寫(或查找...)一個將關聯數組作爲輸入的函數,並生成查詢。關鍵要素:array_keys,implode和mysql_real_escape_string。 PHP手冊裏散佈着這些:)