插入MySQL数据库时如何忽略空字段?

时间:2011-11-02 20:21:19

标签: php mysql ignore

我正在创建一个非常基本的管理页面来控制另一个页面上的内容。

我在管理页面上有几个字段,其中一个是文件上传字段。提交表单后,文件将上载到文件夹,文件名将放入数据库中。

问题是当有人进入管理页面更新内容并且他们没有上传文件时,文件名值会从数据库中删除。

有没有办法进行MySQL查询或忽略空值的其他东西?

$headerimage=($_FILES['headerimage']['name']); 
$cktest = $_POST['editor1'];
$LikeText = $_POST['editor2'];

$sql = "UPDATE installs SET noLikeText = '$cktest', LikeText = '$LikeText', headerImage = '$headerimage' WHERE pageID = '$page_id'";

3 个答案:

答案 0 :(得分:1)

你可以用这个......

例如

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'";
}

答案 1 :(得分:0)

听起来你需要为你的应用添加一些逻辑。您要求的大部分时间都可以通过在表单中​​添加“删除”复选框来完成,因此如果用户单击删除复选框,它将删除该行,如果不是,则会发生关于该文件的任何内容。

答案 2 :(得分:0)

您应该首先显示查询。我猜你没有正确地写你的更新查询。

$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)."'";

您基于条件将查询构建为字符串的基本思路。这总是适合我。