Python pymysql向SQL語(yǔ)句中傳參的多種方法
Python-pymysql如何向SQL語(yǔ)句中傳參
方法一:不傳遞參數(shù)
## 方式一、不傳遞參數(shù) id = "01" name = "語(yǔ)文" sql = "select * from course where course_id = '%s' and course_name = '%s' ;" %(id,name) ## 執(zhí)行數(shù)據(jù)庫(kù)查詢或命令 cursor.execute(sql)
方法二:使用數(shù)組傳遞參數(shù)
## 方式二、使用數(shù)組傳遞參數(shù) values = ['01','語(yǔ)文'] sql = "select * from course where course_id = %s and course_name = %s " ## 執(zhí)行數(shù)據(jù)庫(kù)查詢或命令 cursor.execute(sql,values)
注意:此處的占位符是%s,無(wú)論是字符串、數(shù)字或者其他類型,都是這個(gè)占位符。 %s不能加引號(hào)。
與第一種寫(xiě)法,有什么區(qū)別呢?
兩者區(qū)別是對(duì)變量的解析:
第一種寫(xiě)法,使用百分號(hào)%, 是用Python解釋器對(duì)%s執(zhí)行相應(yīng)的替換。這種方法存在漏洞,有些時(shí)候不能正常解析,比如包含某些特殊字符,甚至?xí)斐勺⑷牍舻娘L(fēng)險(xiǎn)。
第二種,變量是作為execute的參數(shù)傳入的,由MySQLdb的內(nèi)置方法把變量解釋成合適的內(nèi)容。
一般情況下,建議使用第二種方法,把變量作為參數(shù)傳遞給execute。
方法三:使用字典dict類型傳遞參數(shù)
## 方式三、使用字典dict類型傳遞參數(shù) sql = "select * from course where course_id = %(course_id)s and course_name = %(course_name)s ;" ## 將參數(shù)封裝到字典 #values = {'course_id':'01','course_name':'語(yǔ)文'} values = {'course_name':'語(yǔ)文','course_id':'01'} ## 執(zhí)行數(shù)據(jù)庫(kù)查詢或命令 cursor.execute(sql,values)
這種方式,傳遞的參數(shù)對(duì)應(yīng)關(guān)系比較清晰。尤其是參數(shù)比較多時(shí),使用字典,可以保證傳遞參數(shù)的順序正確。
到此這篇關(guān)于Python-pymysql如何向SQL語(yǔ)句中傳參的文章就介紹到這了,更多相關(guān)Python sql語(yǔ)句傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python pymysql連接數(shù)據(jù)庫(kù)并將查詢結(jié)果轉(zhuǎn)化為Pandas dataframe
- python-pymysql獲取字段名稱-獲取內(nèi)容方式
- python中pymysql的executemany使用方式
- 封裝一個(gè)python的pymysql操作類
- 詳解Python如何利用pymysql封裝項(xiàng)目通用的連接和查詢
- 詳解PyMySQL插入字典類型的數(shù)據(jù)
- python使用pymysql操作MySQL錯(cuò)誤代碼1054和1064處理方式
- python pymysql peewee關(guān)于時(shí)區(qū)問(wèn)題分析
相關(guān)文章
解決python中os.listdir()函數(shù)讀取文件夾下文件的亂序和排序問(wèn)題
今天小編就為大家分享一篇解決python中os.listdir()函數(shù)讀取文件夾下文件的亂序和排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Django?事務(wù)回滾的具體實(shí)現(xiàn)
本文主要介紹了Django?事務(wù)回滾的具體實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02使用Python進(jìn)行新浪微博的mid和url互相轉(zhuǎn)換實(shí)例(10進(jìn)制和62進(jìn)制互算)
我們?cè)谑褂眯吕宋⒉〢PI時(shí),有時(shí)需要得到一個(gè)微博的url,但是如statuses/public_timeline等接口中取得的微博status的字段中并沒(méi)有包含2014-04-04Pycharm+Python工程,引用子模塊的實(shí)現(xiàn)
這篇文章主要介紹了Pycharm+Python工程,引用子模塊的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03python使用itchat庫(kù)實(shí)現(xiàn)微信機(jī)器人(好友聊天、群聊天)
itchat是一個(gè)開(kāi)源的微信個(gè)人號(hào)接口,可以使用該庫(kù)進(jìn)行微信網(wǎng)頁(yè)版中的所有操作。本文主要使用該庫(kù)完成一個(gè)能夠處理微信消息的的圖靈機(jī)器人,包括好友聊天、群聊天,感興趣的朋友跟隨小編一起學(xué)習(xí)吧2018-01-01Python+Selenium實(shí)現(xiàn)表單自動(dòng)填充和提交
你是不是也厭倦了每天重復(fù)表單填寫(xiě)的工作,是時(shí)候讓技術(shù)來(lái)幫助我們解放雙手了,下面小編就為大家介紹一下如何使用Selenium和Python來(lái)自動(dòng)填充和提交表單2023-09-09