python中pymysql執行sql的兩種可防止sql注入漏洞的傳參方式(1、元組/列表 2、dict字典)

1、採用sql拼接的方式,拼接時用 xx= %s的方式,入參格式爲元組或者list
如下舉例:
sql = "select count(*) as sys_num from test where true "
params = []
if param1:
    sql += " and param1 = %s "
    params.append(param1)
if param2:
    sql +=  " and (param2=%s) "
    params.append(param2)
cur.execute(sql, params)
2、採用sql拼接的方式,拼接時用 xx=%(xx)s的方式, 入參格式爲dict
如下舉例:
sql = "select count(*) as sys_num from test where true "
params = {"param1": "xx", "param2": "xxx"}
if param1:
    sql += " and param1 = %(param1)s "
if param2:
    sql += " and (param2=%(param2)s) "
cur.execute(sql, params)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章