Php 多行更新-如果字段为空,则更新列NULL

Php 多行更新-如果字段为空,则更新列NULL,php,mysql,Php,Mysql,我有一个表单,它用6个字段更新多个行ID,我正在尝试获取正确的代码,以便在没有任何更改的情况下将列设置为NULL。 下面是我的代码。 我试图做的是在(shippedto_客户)处,如果我不添加if语句,更新工作正常,但我希望使用if语句,以防用户不更改shippedto_客户字段的日期。 对不起,如果我解释不正确 if(isset($_POST['Submit'])) { $count=count($_POST["id"]); for($i=0;$i<

我有一个表单,它用6个字段更新多个行ID,我正在尝试获取正确的代码,以便在没有任何更改的情况下将列设置为NULL。 下面是我的代码。 我试图做的是在(shippedto_客户)处,如果我不添加if语句,更新工作正常,但我希望使用if语句,以防用户不更改shippedto_客户字段的日期。 对不起,如果我解释不正确

if(isset($_POST['Submit']))
{
    $count=count($_POST["id"]);

    for($i=0;$i<$count;$i++){
        $sql1="UPDATE $tbl_name SET status='" . $_POST['status'][$i] . "', 
ship_from_factory='" . $_POST['ship_from_factory'][$i] . "', 
shippedto_customer=if(shippedto_customer='',NULL,'" . 
            $_POST['shippedto_customer'][$i] . "'), ship_comments='" . 
            $_POST['ship_comments'][$i] . "' WHERE id='" . $_POST['id'][$i] . "'";
        $result1=mysql_query($sql1);
    }
}
if(isset($\u POST['Submit']))
{
$count=count($_POST[“id”]);

对于($i=0;$i您测试的是表中的旧
shippedto\u客户
,而不是表单中的值

您可以使用
NULLIF()
函数测试所存储的值是否为空字符串,并改为存储
NULL

if(isset($_POST['Submit']))
{
    $count=count($_POST["id"]);

    for($i=0;$i<$count;$i++){
        $status = mysql_real_escape_string($_POST['status'][$i]);
        $ship_from_factory = mysql_real_escape_string($_POST['ship_from_factory'][$i]);
        $shipped_to_customer = mysql_real_escape_string($_POST['shippedto_customer'][$i]);
        }
        $ship_comments = mysql_real_escape_string($_POST['ship_comments'][$i]);
        $id = mysql_real_escape_string($_POST['id'][$i]);
        $sql1="UPDATE $tbl_name
               SET status='$staus', ship_from_factory='$ship_from_factory', 
                   shippedto_customer=NULLIF('$shipped_to_customer', ''), 
                   ship_comments='$ship_comments' WHERE id='$id'";
        $result1=mysql_query($sql1);
    }
}
if(isset($\u POST['Submit']))
{
$count=count($_POST[“id”]);

对于($i=0;$i首先,您应该使用PHP编写的语句,并停止使用
mysql\ucode>PHP函数。为什么您使用的是近十年前就被弃用的过时且不安全的API?警告:不要使用在PHP 7中删除的过时接口。类似的替换和类似的指南有助于解释最佳实践。此处参数不是,这在该代码中有严重问题。请转义所有用户数据,特别是从
$\u POST
$\u GET
转义。