簡體   English   中英

插入MySQL數據庫時如何忽略空字段?

[英]How to ignore empty fields when inserting into MySQL database?

我正在創建一個非常基本的管理頁面來控制另一個頁面上的內容。

我在管理頁面上有幾個字段,其中一個是文件上傳字段。 提交表單后,文件將上傳到文件夾,文件名將放入數據庫。

問題是,當有人進入管理頁面以更新內容並且他們沒有上載文件時,文件名值將從數據庫中刪除。

有沒有辦法進行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'";

你可以用這個...

例如

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

聽起來您需要向應用程序添加一些邏輯。 大部分時間可以通過向表單添加“刪除”復選框來完成,因此,如果用戶單擊“刪除”復選框,它將刪除該行,如果不單擊該行,則不會發生與該文件有關的任何事情。

您應該首先顯示查詢。 我猜您沒有正確編寫更新查詢。

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

將條件構建為基於條件的字符串的基本思想。 這總是對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM