仅当值不为空时才更新 PHP/MYSQL

标签 php mysql forms

我正在构建一个表单来更新多列数据。出于我的目的,此代码已部分成功。剩下要做的唯一一件事就是包含(如果 IS NOT NULL)更新查询。我不确定该怎么做。

换句话说,我只希望在 $_POST 值不为空时执行更新。

<form>
<input type='text' name='input1' />
<input type='text' name='input2' />
<input type='text' name='input3' />
<input type='submit' value='submit' />
</form>

<?php
//db connect

$1=$_POST['input1'];
$2=$_POST['input2'];
$3=$_POST['input3'];

mysql_query("UPDATE table
             SET a = $1
                 b = $2
                 c = $3
             WHERE row = 'row_id");

);


?>

在此先感谢您的帮助。

(为了避免您进行一些额外的输入,我的原始代码对字符进行了转义,因此不需要 SQL 注入(inject)警告。我也在熟悉“mysqli_query”,因此也无需对此发表评论.)

最佳答案

您可以使用COALESCE

       UPDATE table
         SET a = COALESCE($1, a),
             b = COALESCE($2, b),
             c = COALESCE($3, c)
         WHERE row = ''

关于仅当值不为空时才更新 PHP/MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15525248/

相关文章:

php mysql + session 问题

php - 从 Telegram channel 获取我不是管理员的消息

php - 强制 php 将数字显示为 0.000001 而不是 f 1.0E-6

php - 使用 jquery ajax 显示带有更新按钮的选定行表

mysql - SQL如何根据给定条件进行选择?

python - 提交时刷新表单 - Django

javascript - 递归地 react : Adding props only to React component and not html tag (React. Children.map)

php - 如何在 Sublime Text 2 中运行 PHP 代码

php - 当结果只有一行时,PDO fetchAll 似乎失败了?

javascript - 将用户输入存储在数组中