0

次のようなクエリを取得しました。

"UPDATE snakes_tb 
       SET snake_pic_urls= CONCAT(snake_pic_urls,'*".$newSnakePic."'), 
           snake_default_pic = '".$Set_a_Value_here_only_if_this_field_is_empty_or_equal_to_NO_PIC."' WHERE snake_id={$id}"

snake_default_picフィールドの値を設定する前に、フィールドの条件を満たすために何ができるでしょうか? ありがとう。

4

2 に答える 2

2

これを試して:

UPDATE snakes_tb 
       SET snake_pic_urls= CONCAT(snake_pic_urls,'*".$newSnakePic."'), 
           snake_default_pic = IF(snake_default_pic = '' OR snake_default_pic = 'NO_PIC' ,'default_pic',snake_default_pic) 
WHERE snake_id={$id}

snake_default_pic空または NO_PIC に等しい場合は更新され、default_picそれ以外の場合は同じ値を保持します

于 2013-07-01T15:22:11.063 に答える
2

写真がない場所のみを更新する場所を更新するだけです:

UPDATE snakes_tb 
       SET snake_pic_urls= CONCAT(snake_pic_url,'*".$newSnakePic."'), 
           snake_default_pic = '".$pic."' 
       WHERE snake_id={$id}
             AND (snake_default_pic = '' OR snake_default_pic='NO_PIC')

コードも SQL インジェクションに対して脆弱であることに注意してください。プリペアド ステートメントは、これを防ぐのに役立ちます。

于 2013-07-01T15:20:43.823 に答える