精品熟女碰碰人人a久久,多姿,欧美欧美a v日韩中文字幕,日本福利片秋霞国产午夜,欧美成人禁片在线观看

Python?pymysql向SQL語句中傳參的方法有哪些

python?pymysql向sql語句中傳參的方法有哪些

本文講解"python?pymysql向sql語句中傳參的方法有哪些",希望能夠解決相關問題。

目錄
  • python-pymysql如何向sql語句中傳參

    • 方法一:不傳遞參數

    • 方法二:使用數組傳遞參數

    • 方法三:使用字典dict類型傳遞參數

python-pymysql如何向sql語句中傳參

方法一:不傳遞參數

##?方式一、不傳遞參數
?id?=?"01"
?name?=?"語文"
?sql?=?"select?*?from?course?where?course_id?=?'%s'??and?course_name?=?'%s'?;"?%(id,name)
?##?執行數據庫查詢或命令
?cursor.execute(sql)

方法二:使用數組傳遞參數

##?方式二、使用數組傳遞參數
??values?=?['01','語文']
??sql?=?"select?*?from?course?where?course_id?=?%s?and?course_name?=?%s?"
??##?執行數據庫查詢或命令
??cursor.execute(sql,values)

注意:此處的占位符是%s,無論是字符串、數字或者其他類型,都是這個占位符。?%s不能加引號。

與第一種寫法,有什么區別呢?

兩者區別是對變量的解析:

第一種寫法,使用百分號%, 是用python解釋器對%s執行相應的替換。這種方法存在漏洞,有些時候不能正常解析,比如包含某些特殊字符,甚至會造成注入攻擊的風險。

第二種,變量是作為execute的參數傳入的,由mysqldb的內置方法把變量解釋成合適的內容。

一般情況下,建議使用第二種方法,把變量作為參數傳遞給execute。

方法三:使用字典dict類型傳遞參數

##?方式三、使用字典dict類型傳遞參數
??sql?=?"select?*?from?course?where?course_id?=?%(course_id)s?and?course_name?=??%(course_name)s?;"
??##?將參數封裝到字典
??#values?=?{'course_id':'01','course_name':'語文'}
??values?=?{'course_name':'語文','course_id':'01'}
??##?執行數據庫查詢或命令
??cursor.execute(sql,values)

這種方式,傳遞的參數對應關系比較清晰。尤其是參數比較多時,使用字典,可以保證傳遞參數的順序正確。

關于 "python?pymysql向sql語句中傳參的方法有哪些" 就介紹到此。希望多多支持碩編程

下一節:mysql動態增添字段如何實現

mysql教程

相關文章