[英]UPDATE SQL, only UPDATE image if not null
我试图允许用户更新具有图像文件上传输入的表。 只有文件名存储在数据库中,例如image.jpg。 我的问题是,如果用户选择不更改图像,则它将清除数据库中的内容,因为它会发送空值。 如果输入文件不为空,如何仅更新IMAGE字段?
// prepare and bind
$stmt = $conn->prepare("UPDATE News SET
TITLE=?,
CONTENT=?,
IMAGE=?
WHERE ID=?");
$stmt->bind_param("sssd", $title, $content, $image, $id);
它比使用条件语句更简单:
逻辑:
if(condition){ do something } else{ do something else }
您可以将其与$_FILES
数组结合使用,并作为示例:
if(!empty($_FILES['file'])){
// execute SQL
}
else{
// do something else
}
不确定这是否是您要寻找的东西,因为您可能想要更复杂的东西
if (isset($image) && !empty($image))
{
// your code
$stmt = $conn->prepare("UPDATE News SET
TITLE=?,
CONTENT=?,
IMAGE=?
WHERE ID=?");
$stmt->bind_param("sssd", $title, $content, $image, $id);
}
要处理所有情况,请添加到Don Djoe的答案中:
if (isset($image) && !empty($image))
{
// your code
$stmt = $conn->prepare("UPDATE News SET
TITLE=?,
CONTENT=?,
IMAGE=?
WHERE ID=?");
$stmt->bind_param("sssd", $title, $content, $image, $id);
}
else
{
// your code
$stmt = $conn->prepare("UPDATE News SET
TITLE=?,
CONTENT=?
WHERE ID=?");
$stmt->bind_param("ssd", $title, $content, $id);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.