1. 程式人生 > 資料庫 >pyMySQL SQL語句傳參問題,單個引數或多個引數說明

pyMySQL SQL語句傳參問題,單個引數或多個引數說明

在用pymysql操作資料庫的過程中,給sql語句傳參碰到了很多問題,網上傳參策略很多,這裡推薦兩種

單個傳參用%s,寫起來比較簡單:

field = '-'
sql_talk="UPDATE cnp.Test set a='' where b='%s'"
cursor.execute(sql_talk % field)
db.commit()

多個傳參用{0}佔位符:

field = '-'
a = 'code'
sql_talk="UPDATE cnp.Test set {0}='' where business_registration_code='{1}'".format(a,field)

cursor.execute(sql_talk)
db.commit()

補充知識:python自動化之pymysql庫使用變數向SQL語句中動態傳遞引數(sql注入 || 傳參策略)

使用python 3連線Mysql實現自動化增刪查改庫內資料,由於專案原因很多的sql語句過於複雜,導致sql語句內傳遞的引數過多而且容易變動,導致很多同學不知從何下手動態的傳遞引數,有的採用比較笨的方法拼接sql,但是工作量太大,而且複雜的語句拼接時很容易出錯且不好維護,所以為大家整理了%s佔位符的字典傳參的用法

import pymysql
db = pymysql.connect(host="119.XX.XX.XX",port=3306,user="XXXXXXXX",passwd="XXXXXXXXXXXXX",db="XXXXXX",charset='utf8')
 
# %s 佔位符為需要傳遞的引數,切記不要加''雙引號,要不然會報錯
sql = "SELECT totalusercount * 1.4 FROM mm_project_uv_outdoor WHERE poiid = %s AND currenttime = %s"
 
cursor = db.cursor()
# 以下為傳遞多個引數的用法
cursor.execute(sql,['B00140N5CS','2019-04-23'])
# 傳遞單個引數時 cursor.execute(sql,'B00140N5CS')
print(cursor.fetchall())
db.close()

執行後就能得到所查詢的資料了

pyMySQL SQL語句傳參問題,單個引數或多個引數說明

最後建議大家多看官方的文件或標準教程,這樣更有益學習

以上這篇pyMySQL SQL語句傳參問題,單個引數或多個引數說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。