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

Php 使用null/no值更新INT/DECIMAL字段,php,mysql,sql,null,sql-update,Php,Mysql,Sql,Null,Sql Update,我有很多输入框。每个输入框都与INT或DECIMAL MySQL字段链接,并显示在文本框内 每个INT/DECIMAL的默认值都是一个null,因此当用户第一次打开页面时,文本框中不会显示任何内容 我有一个更新查询,它将每个输入框的值更新为受尊重的MySQL字段 我的问题是,对于每个没有输入任何内容的输入框,字段的值从NULL切换到0 我很难找到一种方法来将未接触的输入更新为NULL,并且不让所有未接触的值都变为0。有人能帮忙吗 定义我的变量基本上如下所示: if(nullBlank($_PO

我有很多输入框。每个输入框都与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()函数

函数nullBlank($data)
{
如果(为空($data))
$value=true;

elseif(strlen($data)将$variable1设置为
“NULL”
(字符串)。这样,它将在查询中结束为
NULL
,这在SQL中表示NULL。

将$variable1设置为
“NULL”
(字符串)。这样,它将在查询中结束为
NULL
,这在SQL中表示NULL。

将$variable1设置为
“NULL”
(字符串)。这样,它将在查询中结束为
NULL
,这在SQL中表示NULL。

将$variable1设置为
“NULL”
(字符串)。这样,它将在查询中结束为
NULL
,这在SQL中表示NULL。

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

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

然后为每个值调用此函数,它将为其设置为null或引用它

可能会将空检查代码更改为

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

然后为每个值调用此函数,它将为其设置为null或引用它

可能会将空检查代码更改为

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

然后为每个值调用此函数,它将为其设置为null或引用它

可能会将空检查代码更改为

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


然后为每个值调用这个函数,它要么为null,要么引用它

第一个答案似乎非常准确,而且这个函数有一些代码可以检查并传递nullcorrectly@duindain我想是这样的。但是我如何确保如果我在文本框中输入了一些东西,那么它也会通过。因为如果我有一个值对于
1
,不必执行“1”?我有大约100个值通过SQLIf传递,如果它也是SQL中的一个数字,
`variable1`=1
也可以。第一个答案似乎非常准确,而且这个答案有一些代码要检查并传递空值correctly@duindain我想是这样的。但是我如何确保如果我在文本框中输入了一些东西,那么因为如果我的值为
1
,就不必执行“1”?我有大约100个值通过SQLIf传递,如果它也是SQL中的一个数字,
`variable1`=1
也可以。第一个答案似乎非常准确,而且这个答案有一些代码要检查并传递空值correctly@duindain我想是这样的。但是我如何确保如果我在文本框中输入了一些东西,那么因为如果我的值为
1
,就不必执行“1”?我有大约100个值通过SQLIf传递,如果它也是SQL中的一个数字,
`variable1`=1
也可以。第一个答案似乎非常准确,而且这个答案有一些代码要检查并传递空值correctly@duindain我想是这样的。但是我如何确保如果我在文本框中输入了一些东西,那么因为如果我的值为
1
,就不必执行“1”?我有大约100个值通过SQLIf传递,如果它也是SQL中的一个数字,
`variable1`=1
就可以了。你知道一种方法,我可以构造我的UPDATE语句来允许这一点,但也允许整数/十进制数。我有大约10-100个变量通过这个UPDATE语句传递,既不是NULL,也不是nu必须在SQL中引用MBER,它应该可以正常工作。或者我没有得到qeustion吗?啊,如果数字不需要在SQL中引用,那么问题就解决了:)只有字符串必须,才能将它们与数字区分开来,并删除特殊字符(如空格)的语法含义.基本上。你知道一种方法,我可以构造我的UPDATE语句来允许这一点,但也允许整数/十进制数。我有大约10-100个变量通过这个UPDATE语句。由于在SQL中不必引用NULL或数字,它应该可以正常工作。或者我没有得到qeustion?如果数字没有需要在SQL中引用,然后问题就解决了:)只有字符串必须这样做,才能将它们与数字区分开来,并删除特殊字符(如空格)的语法含义.基本上。你知道一种方法,我可以构造我的UPDATE语句来允许这一点,但也允许整数/十进制数。我有大约10-100个变量通过这个UPDATE语句。由于在SQL中不必引用NULL或数字,它应该可以正常工作。或者我没有得到qeustion?如果数字没有需要在SQL中引用,然后问题就解决了:)只有字符串必须这样做,才能将它们与数字区分开来,并删除特殊字符(如空格)的语法含义.基本上。你知道一种方法,我可以构造我的UPDATE语句来允许这一点,但也允许整数/十进制数。我有大约10-100个变量通过这个UPDATE语句。由于在SQL中不必引用NULL或数字,它应该可以正常工作。或者我没有得到qeustion?如果数字没有需要在SQL中引用,然后问题就解决了:)只有字符串必须这样做,才能将它们与数字区分开来,并删除特殊字符(如空格)的语法含义。