第四篇:python操作數據庫時的傳參問題


python在操作數據庫執行sql的時候我們經常會遇到傳參問題,以下是我總結的幾種方法:

1、格式化字符串

city = 'beijing'
cur.execute(“SELECT * FROM %s WHERE city = %s”, city)

2、使用字典傳遞

sql = “INSERT INTO user VALUES(%(username)s, %(password)s, %(email)s)”
value = {“username”:zhangsan,“password”:123456,“email”:123456@ouvps.com}
cur.execute(sql, value)

3、傳遞參數+參數名稱:利用‘三引號’實現復雜SQL的換行,然后對參數進行拼接,如下樣例中的time,根據自己的情況而定

def sql_func(time):
time = "'" + time + "'"
fail_sql='''
SELECT substr(s_start_time,1,10) "日期",count(*) "失敗數量"
FROM T_SG_WS_EXE_LOG L
WHERE 1 = 1
AND (S_WS_METHOD = 'NotifyOrderStatus' OR (S_WS_METHOD = 'placeOrder' AND S_IS_OK = 'false'))
and s_request_str not like '%"deployStatus":"2120"%' and s_request_str not like '%"deployStatus":"0"%'
and substr(s_start_time,1,10) = '''+time +'''group by substr(s_start_time,1,10)
'''
# 使用cursor進行各種操作
y=cr.execute(fail_sql)
result = y.fetchall()
return result

參考文檔:https://www.cnblogs.com/goodhacker/p/3257882.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM