av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

python2.7 - python 如何執(zhí)行mysql單個參數(shù)過濾

瀏覽:111日期:2022-09-12 08:02:36

問題描述

使用python執(zhí)行mysql,報錯了:

name = 'AAA’A'cursor.execute(’select * from tb where name=%s’,name)cursor.execute(’select * from tb where name=%s’,(name))

都會報錯

query = query % tuple([db.literal(item) for item in args])TypeError: not all arguments converted during string formatting

但是以下不會報錯:

name = 'AAA’A'cursor.execute(’select * from tb where name=%s and %s’,(name,1))

python27 如何過濾mysql 單個參數(shù)

問題解答

回答1:

因為題主并未提及連接數(shù)據(jù)庫用的哪個庫,所以假設(shè)你使用的是mysqldb。可以看一下mysqldb的源碼:

...def execute(self, query, args=None): ''' ... args -- optional sequence or mapping, parameters to use with query. ... ''' if args is not None:# 首先判斷args是否為字典類型if isinstance(args, dict): # 以k-v形式填入查詢語句中。 query = query % dict((key, db.literal(item)) for key, item in args.iteritems())# 當args為非字典類型時else: # 遍歷args, 最后生成一個元組填入查詢語句中。 query = query % tuple([db.literal(item) for item in args]) ...

可以看到,args參數(shù)為一個可選的序列或者映射,即args參數(shù)的期望類型是list或者tuple。那么回頭再看一下你給的輸入?yún)?shù):

>>> name = ’test’>>> type(name)<type ’str’>>>> type((name))<type ’str’>>>> type((’name’, 1))<type ’tuple’>

所以,解決方法很簡單:

>>> type((name, ))<type ’tuple’>>>> cursor.execute(’select * from tb where name=%s’,(name, ))1L

這里就涉及到一個小細節(jié)。當創(chuàng)建只有一個元素的元組時,需要加一個逗號,否則解釋器會當作一個字符串創(chuàng)建。

回答2:

cursor.execute(’select * from tb where name='%s'’,name)

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 超碰在线国产 | www.色网| 亚洲欧美第一页 | 懂色av一区二区三区 | 黄色裸体视频 | 免费的黄色小视频 | 亚洲免费在线视频 | 国产精品一区二区av | 97操碰| 成人精品影院 | 成人a视频| 四虎wz | aaaa级片| 91亚洲视频 | 国产又色又爽又黄又免费 | 97国产在线观看 | 日韩欧美国产精品 | 中文字幕第5页 | 亚洲综合精品 | 精品国产一区二区三区久久久蜜月 | 麻豆国产一区二区三区四区 | 亚洲午夜久久久 | 亚洲一级黄色片 | 日韩视频一区二区三区 | 狠狠干狠狠干 | 欧洲一级毛片 | 丰满少妇高潮在线观看 | 精品一区二区三区视频 | 中文字幕自拍 | 亚洲视频在线观看一区 | 欧美视频三区 | 亚洲福利网 | 日韩大片在线观看 | 欧美日韩一区在线 | 91在线精品秘密一区二区 | 中文字幕在线免费观看视频 | 久久国产成人 | 成人国产精品一区二区 | 最新中文字幕在线 | 国产aⅴ爽av久久久久成人 | 成人网在线 |