Python处理mysql特殊字符的问题
有的时候我们会去扫表,然后拿出扫的结果再到另一张表里去查信息。比如下面一段
index_sql_str="select%sfromuserwhere%s=%d"%("social_id","user_id",u_id) db_cursor.execute(index_sql_str) rows=['"'+row[0]+'"'forrowindb_cursor.fetchall()] iflen(rows)==0: returnNone result=[] sql_str="select%suser_detailwhere%sin(%s)"%(",".join(user_third_column_name),"social_id",",".join(rows)) db_cursor.execute(sql_str)
常会有用%s或者+拼接querystring的情况,这时候如果拿出来的键值带有'或''就会导致拼接出现问题。
可以考虑用format,即
>>>a='test"test' >>>"insertintouser{0}".format(a) 'insertintousertest"test' >>>b="test'test" >>>"insertintouser{0}where{1}=x".format(a,b) 'insertintousertest"testwheretest\'test=x'
如果大小写都包含会自己增加转义字符
补充拓展:基于python中写mysql关于like%的问题
#@1-正常执行的mysql语句为: select*fromRESIDENTIAL_AREAwhereRA_IDlike'HF-%' #@2-在python代码中为:最后面的那个%需要4个%去代替(raid=HF-) select_sql='''select*fromRESIDENTIAL_AREAwhereRA_ID like'%s%%%%''''%(raid) #@3-python代码中输出结果为:print(select_sql) select*fromRESIDENTIAL_AREAwhereRA_IDlike'HF-%%'
以上这篇Python处理mysql特殊字符的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。