亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python2.7 - python 如何執行mysql單個參數過濾

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

問題描述

使用python執行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 單個參數

問題解答

回答1:

因為題主并未提及連接數據庫用的哪個庫,所以假設你使用的是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參數為一個可選的序列或者映射,即args參數的期望類型是list或者tuple。那么回頭再看一下你給的輸入參數:

>>> 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

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

回答2:

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 视频国产91 | 国产手机在线小视频免费观看 | 欧美日韩亚洲精品一区二区 | 免费的很黄很色的床小视频 | 成人免费动作大片黄在线 | 欧美成人精品手机在线观看 | 欧美精品无需播放器在线观看 | 午夜激情免费 | 亚洲国产精品高清在线一区 | 日韩h片在线观看 | 欧美区日韩区 | 黄色大片视频 | 久久视屏这里只有精品6国产 | 国产精品国产福利国产秒拍 | 日韩av成人 | 爱爱小视频免费体验区在线观看 | 麻豆一区 | 亚洲高清美女一区二区三区 | 久久久国产免费影院 | 亚洲一区无码中文字幕 | 国产日韩欧美一区二区三区视频 | 国产视频一区二区三区四区 | 亚洲人成在线精品 | 在线精品视频免费观看 | 香蕉视频在线观看免费 | 日本一区二区在线不卡 | 高清国产亚洲va精品 | 国产精品久久久久9999小说 | 普通话对白国产情侣自啪 | 任你躁欧美一级在线精品免费 | 欧美成亚洲 | 久久精品免观看国产成人 | 欧美曰b| 高清xx另类麻豆性色生活片 | 欧美三级中文字幕 | 久久aa毛片免费播放嗯啊 | 国产99re在线观看只有精品 | 欧美日韩综合一区 | 中文字幕第一页在线视频 | 欧美特黄高清免费观看的 | 青草久久精品亚洲综合专区 |