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
仍然是原始的和有害的,也许你可以解释一下你的意思,以造福他人。谢谢