我有一种形式可以更新mysql中的某些值,当输入为空时,如何避免更新单元格?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我有一种形式可以更新mysql中的某些值,当输入为空时,如何避免更新单元格?相关的知识,希望对你有一定的参考价值。

我在php中有一个脚本,该脚本在以不同的输入形式获取一些值后执行multyquery更新。如果我填写所有这些表格并按保存,一切都会正常。但是,如果我打开一个字段,则会收到错误消息,因为该值不能为空。

现在,我想做的是,当php / html表单的输入字段为空时,不应更改记录,并保持当前值在数据库中。

这是我当前代码的一部分

                                        $sql = "UPDATE task SET name='$aName', surname='$aSurname', htbTotal='$ahtbtotal' WHERE id=1;";
                                    $sql .= "UPDATE task SET name='$fName', surname='$fSurname', htbTotal='$fhtbtotal' WHERE id=2;";

                                    if ($conn->multi_query($sql) === TRUE) {
                                      echo "Record updated successfully";
                                      $risposta= "Record updated successfully";
                                    } else {
                                      echo "Error updating record: " . $conn->error;
                                       $risposta= "Error updating record: " . $conn->error;
                                    }

这是一个输入示例

<input id="aName" name="aName" type="text" placeholder="">

有任何建议吗?

提前感谢!

更新:为了更清楚一点,我不需要验证。我希望用户如果不想填写,则将一些输入留空,但这不应该重写数据库内部的相关行值

答案
$sql = "UPDATE task SET";


if(strlen($_POST['aName'])>0)
{
$sql .= " name='$aName',";
}
if(strlen($_POST['aSurname'])>0)
{
$sql.=" surname='$aSurname',";
} 
if(strlen($_POST['htbTotal'])>0)
{
 $sql.=" htbTotal='$htbTotal'";
} 
 $sql.=" WHERE id=1;";

这样您可以通过比较解决

以上是关于我有一种形式可以更新mysql中的某些值,当输入为空时,如何避免更新单元格?的主要内容,如果未能解决你的问题,请参考以下文章

update出现部分字段没有更新?

使用ajax为每个输入字段更新mysql中的数据

当 Spring Boot 中的某些列为空时,@LastModifiedDate 不会更新

mysql 只计算连接查询中的不同值

MySQL 仅更新表中的某些字段

MySQL:从另一个表更新一个表中的 id 值