【问题标题】:MySQL and PHP - insert even if variable is blank?MySQL和PHP - 即使变量为空也插入?
【发布时间】:2011-06-04 22:15:30
【问题描述】:

我有一个 MySQL 语句将一些变量插入到数据库中。我最近添加了 2 个可选字段($intLat、$intLng),但如果输入,我想将它们包含在插入语句中:

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

【问题讨论】:

  • 这些字段是整数吗?如果是这样,您不需要将它们括在引号中。您可能希望使用 intval() 或 (int) 将它们转换为整数,然后如果它们为 null,它们将变为 0。

标签: php mysql


【解决方案1】:

不同意迈克尔史蒂文斯的观点;如果这些值是可选的,则它们在数据库中应该为 NULL。但是,由于您引用了它们,它们将作为空字符串插入。从数据完整性的角度来看,这会很糟糕。

那么...怎么做呢?花点时间编写(或查找...)一个将关联数组作为输入并生成查询的函数。关键成分:array_keys、implode 和 mysql_real_escape_string。 PHP 手册中充斥着这些 :)

【讨论】:

    【解决方案2】:

    只需使用一次插入,如果变量为空,它将向数据库发布空

    【讨论】:

    • 只要这些字段定义为 DEFAULT NULL 就可以了。在上面的语句中,所有内容似乎都是一个字符串,它也适用于任何一种方式。
    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2016-11-13
    • 2011-07-16
    相关资源
    最近更新 更多