cur.execute(sql,args)和cur.execute(sql)的区别

本文对比了两种在Python中执行SQL语句的方法,一种是直接使用字符串格式化,另一种是使用元组参数化SQL语句。指出直接使用字符串格式化存在SQL注入风险,而使用元组参数化可以增加SQL安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

轉:https://blog.youkuaiyun.com/mjjyszazc/article/details/88932664

 

方式一:

userid = “123”
sql = “select id,name from user where id = ‘%s’” % userid
cur.execute(sql)

方式二:
“”"
sql语句模板中的参数填充符是 %s 而不是 ‘%s’ ,且多个参数需要用元祖存放,单个参
数可直接传递
“”"
userid = “123”
sql = "“select id,name from user where id = %s and name =%s”
cur.execute(sql, (‘123’, ‘云天明’))

区别:
方式一会存在sql注入的风险,方式二中用python内置的方法可以对sql语句中传入的参数进行校验,在一定程度上屏蔽掉sql注入,增加了sql的安全性,在不便直接使用sqlArchemy框架(底层实现也是调用的方式二)的情况下,建议选择方式二
---------------------
作者:凌寒独自开
来源:优快云
原文:https://blog.youkuaiyun.com/mjjyszazc/article/details/88932664
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/kenD/p/11124686.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值