Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅当输入(type=file)有任何值时才更新MySQL数据库表列_Php_Mysql - Fatal编程技术网

Php 仅当输入(type=file)有任何值时才更新MySQL数据库表列

Php 仅当输入(type=file)有任何值时才更新MySQL数据库表列,php,mysql,Php,Mysql,我正在使用HTML表单更新我的DB table列值,但问题是如果我没有在输入字段中输入任何值,mysqli_query会用一个空字符串替换已经存在的值,因此我丢失了该值 如果输入字段没有值,如何进行不更新列的查询。 我已经用if语句完成了,但我不想用if语句。我不能只用MySQL吗 if ($post_image) { $query_2 = "UPDATE posts SET post_image = '$post_image' WHERE post_id = $post_id

我正在使用HTML表单更新我的DB table列值,但问题是如果我没有在输入字段中输入任何值,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));  
        }
    }    
if($post_image){
$query_2=“更新帖子集帖子图片=”$帖子图片”,其中帖子id=$帖子id”;
$editPostImg=mysqli\u查询($connection,$query\u 2);
如果(!$mg){
死(“出了点问题。
”。mysqli_错误($connection)); } }
尝试更改查询以包含有关所提供值的条件

UPDATE posts 
   SET post_image = '$post_image'
 WHERE post_id = $post_id
   AND LENGTH('$post_image') > 0
   AND post_image <>  '$post_image'
更新帖子
设置post_image='$post_image'
其中post\u id=$post\u id
和长度(“$post_image”)>0
和post_image“$post_image”

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

您可以共享代码,看看有什么问题吗。您已经有太多未关闭的问题了,无论如何。@nbk我已经用代码更新了我的问题。。。请再看一次。@FunkFortyNiner我已经用代码更新了我的问题。。。请再看一看。