Python pymysql向SQL語句中傳參的多種方法
Python-pymysql如何向SQL語句中傳參
方法一:不傳遞參數(shù)
## 方式一、不傳遞參數(shù) id = "01" name = "語文" sql = "select * from course where course_id = '%s' and course_name = '%s' ;" %(id,name) ## 執(zhí)行數(shù)據(jù)庫查詢或命令 cursor.execute(sql)
方法二:使用數(shù)組傳遞參數(shù)
## 方式二、使用數(shù)組傳遞參數(shù) values = ['01','語文'] sql = "select * from course where course_id = %s and course_name = %s " ## 執(zhí)行數(shù)據(jù)庫查詢或命令 cursor.execute(sql,values)
注意:此處的占位符是%s,無論是字符串、數(shù)字或者其他類型,都是這個(gè)占位符。 %s不能加引號(hào)。
與第一種寫法,有什么區(qū)別呢?
兩者區(qū)別是對(duì)變量的解析:
第一種寫法,使用百分號(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':'語文'}
values = {'course_name':'語文','course_id':'01'}
## 執(zhí)行數(shù)據(jù)庫查詢或命令
cursor.execute(sql,values)這種方式,傳遞的參數(shù)對(duì)應(yīng)關(guān)系比較清晰。尤其是參數(shù)比較多時(shí),使用字典,可以保證傳遞參數(shù)的順序正確。
到此這篇關(guān)于Python-pymysql如何向SQL語句中傳參的文章就介紹到這了,更多相關(guān)Python sql語句傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python pymysql連接數(shù)據(jù)庫并將查詢結(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ū)問題分析
相關(guān)文章
python開發(fā)實(shí)例之python使用Websocket庫開發(fā)簡(jiǎn)單聊天工具實(shí)例詳解(python+Websocket+J
這篇文章主要介紹了python開發(fā)實(shí)例之python使用Websocket庫開發(fā)簡(jiǎn)單聊天工具實(shí)例詳解(python+Websocket+JS),需要的朋友可以參考下2020-03-03
詳解Python在七牛云平臺(tái)的應(yīng)用(一)
這篇文章主要介紹了詳解Python在七牛云平臺(tái)的應(yīng)用(一),涉及Python通過官方庫對(duì)空間的操作,上傳的步驟,操作方法等相關(guān)內(nèi)容,以及完整的操作代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
Python itertools庫高效迭代藝術(shù)實(shí)例探索
Python 中的?itertools?庫為迭代器操作提供了豐富的工具集,使得處理迭代對(duì)象變得更加高效和靈活,本篇文章將深入討itertools庫的常用方法,通過詳實(shí)的示例代碼演示其在解決各種問題中的應(yīng)用2024-01-01
python實(shí)現(xiàn)簡(jiǎn)單俄羅斯方塊游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單俄羅斯方塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
python數(shù)據(jù)處理——對(duì)pandas進(jìn)行數(shù)據(jù)變頻或插值實(shí)例
這篇文章主要介紹了python數(shù)據(jù)處理——對(duì)pandas進(jìn)行數(shù)據(jù)變頻或插值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python cx_freeze打包工具處理問題思路及解決辦法
這篇文章主要介紹了Python cx_freeze打包工具處理問題思路及解決辦法的相關(guān)資料,需要的朋友可以參考下2016-02-02
Python中pillow知識(shí)點(diǎn)學(xué)習(xí)
本文給大家通過一篇Python中pillow知識(shí)點(diǎn)學(xué)習(xí)的筆記內(nèi)容讓大家對(duì)pillow有一個(gè)學(xué)習(xí)方向的有一個(gè)認(rèn)識(shí),有興趣的朋友學(xué)習(xí)下。2018-04-04
Python 按比例獲取樣本數(shù)據(jù)或執(zhí)行任務(wù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python 按比例獲取樣本數(shù)據(jù)或執(zhí)行任務(wù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Python中parsel兩種獲取數(shù)據(jù)方式小結(jié)
本文主要介紹了Python中parsel兩種獲取數(shù)據(jù)方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
python面向?qū)ο蠡A(chǔ)之常用魔術(shù)方法
這是我聽老師上課做的筆記,文中有非常詳細(xì)的代碼示例及注釋,對(duì)新手及其友好,對(duì)正在學(xué)習(xí)python的小伙伴們也很有幫助,需要的朋友可以參考下2021-05-05

