使用null / no值更新INT / DECIMAL字段

时间:2014-02-06 03:27:14

标签: php mysql sql null sql-update

我有很多input盒子。每个输入框都与INT或DECIMAL MySQL字段链接,并显示在文本框内。

每个INT / DECIMAL的默认值是null,这样当用户第一次打开页面时,文本框内没有显示任何内容。

我有一个更新查询,它将每个输入框的值更新为受尊重的MySQL字段。

我的问题是,对于没有输入任何内容的每个输入框,字段的值从NULL切换到0

我无法找到将未触摸输入更新为NULL的方法,并且没有将所有未触及的值更改为0.任何人都可以帮忙吗?


定义我的变量基本上就像:

if(nullBlank($_POST['variable1']) == false)
    $variable1 = $_POST['variable1'];
else
    $variable = "";

我也尝试过:$variable = null;


我的更新查询基本上如下所示:

mysql_query("UPDATE `table` SET `variable1`= '" . $variable1 . "' WHERE something = something

我的nullBlank()函数

function nullBlank($data)
{
  if(is_null($data))
       $value = true;
  elseif(strlen($data) <= 0)
       $value = true;
  elseif($data === "")
       $value = true;
  else
       $value = false;

 return $value;
}

2 个答案:

答案 0 :(得分:2)

将$ variable1设置为"NULL"(字符串)。这样它最终会在查询中以NULL结束,这就是SQL中的NULL。

答案 1 :(得分:1)

也许将空检查的代码更改为

if (is_null($myVariable)) {
    $sql .= "$columnName= NULL";
} else {
    $sql .= "$columnName= '" . mysql_real_escape_string($myVariable) . "'";
}

然后为每个值调用它,它将使其为空或引用它