2016-05-03 6 views
0

おはようございます、設定値のカラムのみを更新する

解決策を探していましたが、単純な解決策が見つかりませんでした。これについては、このリンクの会談は、例えば、ずっと私を助けていませんでし:ここMySQL update column only if value not empty where

は私が達成したいものです。

$stmt = $dbh->prepare("UPDATE table_name SET field1 = :value1, field2 = :value2 WHERE id = :id"); 

$stmt->bindValue(':value1', $value1, PDO::PARAM_STR); 
if(!empty($value2)) $stmt->bindValue(':value2', $value2, PDO::PARAM_STR); // if the field was present in the form, otherwise IGNORE it 
$stmt->bindValue(':key', $key, PDO::PARAM_INT); 
$stmt->execute(); 

私はCOALESCEといくつかのソリューションを見てきましたが、それは唯一の値をヌルになる作品

ご協力ありがとうございます

+0

質問がクリアされていません – e4c5

+0

あなたの返信をありがとうございます。実際には、value2が空でなければ更新全体を実行することではありません。クライアントによってクリアされたため、空にすることができます!言い換えれば、私はフォームに表示されたフィールドを更新したいだけです。 – Websphere

答えて

0

私は、どのようなデータを更新する必要がありますか、そのようなフィールドを生成するときは、SQL文を更新する必要があります。

  1. 選択データID =:ID
  2. チェックいくつかのフィールドを更新する必要がある場合。
  3. このようなフィールドの更新のみを生成して実行します。
+0

私は本当にあなたが何を意味するか分かりません、もっと詳しく説明できますか? – Websphere

+0

私の答えが明らかでない場合は申し訳ありません。つまり、同じバージョンがすでにデータベースレコードにある場合、データを更新する必要があるのはなぜですか?一般的に私はIDからすべてのデータを取得しています。次に、新しいデータが現在dbに格納されているデータと異なるかどうかを確認します。次に、フィールドを変更して実行するためのudateクエリを生成します。 – Taras

+0

個人的には、新しいデータが空でないか、nullでないかどうかは確認しません。私は何かが変更された場合にのみ更新クエリを生成しています。 – Taras

関連する問題