Php MYSQL更新:可以先确认一些字段吗?

Php MYSQL更新:可以先确认一些字段吗?,php,mysql,updates,Php,Mysql,Updates,我得到一个类似这样的问题: "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}" 在设置值之前,可以做些什么来满足snak

我得到一个类似这样的问题:

"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\u default\u pic
字段的条件?谢谢。

只需更新where,只需更新没有图片的地方:

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注入的攻击。准备好的语句有助于防止这种情况。

只需更新where to only update where to not where not pic:

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注入的攻击。准备好的语句有助于防止这种情况。

尝试以下方法:

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\u default\u pic
为空或等于NO\u pic,则它将更新为
default\u pic
,否则它将保持相同的值

尝试以下操作:

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\u default\u pic
为空或等于NO\u pic,则它将被更新为
default\u pic
,否则它将保持相同的值

@ErickBest我刚刚添加了解释,请告诉我现在是否清楚最后一个
是什么,snake\u default\u pic)
for?@ErickBest如果
snake\u default\u pic
不为空且不等于NO\u pic,则值将保持不变(就好像它用它已经具有的相同值更新字段一样)太好了。。。完美,像巫毒一样工作+1感谢您花时间解释。@ErickBest我刚刚添加了解释,请告诉我是否现在清楚最后一个
,snake\u default\u pic)
的原因是什么?@ErickBest如果
snake\u default\u pic
不是空的并且不等于NO\u pic,那么值将保持不变(想象一下,如果它用它已经具有的相同值更新字段)伟大的完美,像巫毒一样工作+我在使用PDO…事情很酷,这样说只是为了便于理解,所以。。Thanx用于reminder@Stephen... 这是如何证明SQL注入的?。。。假设查询位于PHP变量
$q
中,查询将像
$q=“UPDATE
一样开始,然后连接,即
“*”$newSnakePic。“
$newSnakePic
仍然是生的和有毒的,也许你可以解释一下,为了他人的利益,你的意思是什么。感谢使用PDO的Sam…事情很酷,这样说只是为了便于理解。。Thanx用于reminder@Stephen... 这是如何证明SQL注入的?。。。假设查询是在PHP变量
$q
中,查询将像
$q=“UPDATE
一样开始,然后连接,即
“*”“$newSnakePic”。
$newSnakePic
仍然是原始的和有害的,也许你可以解释一下你的意思,以造福他人。谢谢