2011-11-02 10 views
0

非常に基本的な管理ページを作成して、別のページのコンテンツを制御しています。MySQLデータベースに挿入するときに空のフィールドを無視するには?

管理ページにはいくつかのフィールドがありますが、そのうちの1つはファイルアップロードフィールドです。フォームが送信されると、ファイルはフォルダにアップロードされ、ファイル名はデータベースに格納されます。

誰かが管理ページにアクセスしてコンテンツを更新し、ファイルをアップロードしないと、ファイル名の値がデータベースから消去されるという問題があります。

空の値を無視する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'"; 
} 
関連する問題