Php 如何在插入MySQL数据库时忽略空字段?
我正在创建一个非常基本的管理页面来控制另一个页面上的内容 我在管理页面上有几个字段,其中一个是文件上传字段。提交表单时,文件将上载到文件夹,文件名将放入数据库 问题是,当有人转到管理页面更新内容时,他们没有上传文件,文件名值就会从数据库中删除 有没有一种方法可以执行MySQL查询或其他忽略空值的操作Php 如何在插入MySQL数据库时忽略空字段?,php,mysql,ignore,Php,Mysql,Ignore,我正在创建一个非常基本的管理页面来控制另一个页面上的内容 我在管理页面上有几个字段,其中一个是文件上传字段。提交表单时,文件将上载到文件夹,文件名将放入数据库 问题是,当有人转到管理页面更新内容时,他们没有上传文件,文件名值就会从数据库中删除 有没有一种方法可以执行MySQL查询或其他忽略空值的操作 $headerimage=($_FILES['headerimage']['name']); $cktest = $_POST['editor1']; $LikeText = $_POST['ed
$headerimage=($_FILES['headerimage']['name']);
$cktest = $_POST['editor1'];
$LikeText = $_POST['editor2'];
$sql = "UPDATE installs SET noLikeText = '$cktest', LikeText = '$LikeText', headerImage = '$headerimage' WHERE pageID = '$page_id'";
听起来你需要给你的应用程序添加一些逻辑。大多数情况下,您请求的内容可以通过向表单中添加“删除”复选框来完成,因此,如果用户单击“删除”复选框,它将删除该行,如果用户没有,则与文件相关的内容将不会发生 您应该从显示查询开始。我猜您没有正确编写更新查询
$file = "";
if(isset($_FILES['file']['tmp_name']))
{
//handle images here
$file = "`file` = 'some_filename.txt', ";
}
$sql = "UPDATE `table` SET $file `field` = '".mysql_real_escape_string($some_value)."' WHERE `id` = '".mysql_real_escape_string($some_id)."'";
基于条件将查询构建为字符串的基本思想。这对我来说总是有用的。你可以用这个
比如说
if($headerimage != "")
{
$sql = "UPDATE installs SET noLikeText = '$cktest', LikeText = '$LikeText', headerImage = '$headerimage' WHERE pageID = '$page_id'";
}else{
$sql = "UPDATE installs SET noLikeText = '$cktest', LikeText = '$LikeText' WHERE pageID = '$page_id'";
}
您应该在代码中执行此操作,而不是在查询中。您正在筛选用户输入,是吗?您的“保存”代码是什么样子的?您应该检查用户输入并仅在输入有效时保存。