我正在构建一个表单来更新多列数据。出于我的目的,此代码已部分成功。剩下要做的唯一一件事就是包含(如果 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/