繁体   English   中英

用空/无值更新INT / DECIMAL字段

[英]Update INT/DECIMAL field with a null/no value

我有很多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;
}

将$ variable1设置为"NULL" (字符串)。 这样,它将在查询中最终为NULL ,这在SQL中表示NULL。

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

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

然后为每个值调用它,它将为null或引用它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM