2011-11-02 101 views
0

我正在創建一個非常基本的管理頁面來控制另一頁上的內容。如何在插入MySQL數據庫時忽略空字段?

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

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

有沒有辦法做一個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'"; 
+1

你應該在你的代碼做這個,**不**您的查詢。你正在篩選用戶輸入,是嗎? – Brad

+0

你的'保存'代碼是什麼樣的?您應該檢查用戶輸入,並且只在輸入有效時才保存。 – jacobsimeon

回答

0

聽起來像你需要添加一些邏輯到你的應用程序。您所要求的大部分時間都可以通過在表單中​​添加一個「刪除」複選框來完成,因此如果用戶單擊刪除複選框,它將刪除該行,如果不刪除,則不會發生關於該文件的任何操作。

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

基本想法,你正在建立你的查詢作爲一個字符串根據條件。這總是適合我。

+0

我剛剛添加了我的代碼。 – Dustin

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