php - 仅当 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));
}
}
解决方案
尝试更改您的查询以包含有关您提供的值的条件。
UPDATE posts
SET post_image = '$post_image'
WHERE post_id = $post_id
AND LENGTH('$post_image') > 0
AND post_image <> '$post_image'
如果值为空,则第二个筛选项(第一个 AND)禁止更新。当您将列值更改为它已有的值时,第三个(第二个 AND)会抑制它。
推荐阅读
- python - 如何在窗口中保留 tkinter 画布?
- pip - PyPI 为什么我需要 pip --upgrade 两次?
- flutter - build 方法多久调用一次?
- python - 如何限制范围内的用户输入?
- python - 如何在 tensorboard 中显示 Tensorflow 2.0 中的 tf.data.Dataset.map 子图?
- python - 调整 LSTM 自动编码器性能
- android - 是否需要 setContentView() 来为片段充气?
- javascript - 我应该将哪个 FileystemDirectory 用于临时文件?
- javascript - 更改 ReactJs 中的对象状态值给我一个警告(不要直接改变状态。使用 setState()
- javascript - 使用express在Node.js中成功后如何发送JSON响应并重定向到某个html页面?