2011-01-06 49 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手册里散布着这些:)