首页 > 解决方案 > 仅当 input(type=file) 有任何值时才更新 MySQL 数据库表列

问题描述

我正在使用 HTML 表单更新我的 DB 表列值,但问题是如果我没有在输入字段中输入任何值,mysqli_query 会用空字符串替换已经存在的值 所以我丢失了那个值。

如果输入字段没有值,如何进行不更新列的查询。我已经用 if 语句完成了,但我不想使用 if 语句。我不能只用 MySQL 做这个吗?

if ($post_image) { 
        $query_2 = "UPDATE posts SET post_image = '$post_image' WHERE post_id = $post_id ";
        $editPostImg = mysqli_query($connection, $query_2); 

        if (!$editPostImg) {
            die("Something went wrong.<br>" . mysqli_error($connection));  
        }
    }    

标签: phpmysql

解决方案


尝试更改您的查询以包含有关您提供的值的条件。

UPDATE posts 
   SET post_image = '$post_image'
 WHERE post_id = $post_id
   AND LENGTH('$post_image') > 0
   AND post_image <>  '$post_image'

如果值为空,则第二个筛选项(第一个 AND)禁止更新。当您将列值更改为它已有的值时,第三个(第二个 AND)会抑制它。


推荐阅读