Python pymysql向SQL语句中传参的多种方法
作者:ministep88 时间:2024-01-13 05:10:00
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)
这种方式,传递的参数对应关系比较清晰。尤其是参数比较多时,使用字典,可以保证传递参数的顺序正确。
来源:https://www.cnblogs.com/ministep/p/17401141.html
标签:Python,sql,传参
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python数据可视化之Pyecharts使用详解
2022-10-19 17:31:12
![](https://img.aspxhome.com/file/2023/3/67783_0s.png)
python中的decimal类型转换实例详解
2022-05-01 15:05:21
面向对象CSS FAQ[译]
2009-10-27 15:59:00
pyqt5-tools安装失败的详细处理方法
2021-08-22 21:34:00
![](https://img.aspxhome.com/file/2023/7/110037_0s.jpg)
JS实现图片手风琴效果
2023-08-23 19:28:27
![](https://img.aspxhome.com/file/2023/6/56066_0s.jpg)
快速掌握ASP连接11种数据库的常用语法
2008-11-28 15:32:00
Python排序搜索基本算法之插入排序实例分析
2023-12-28 14:20:25
![](https://img.aspxhome.com/file/2023/6/110366_0s.jpg)
跟老齐学Python之让人欢喜让人忧的迭代
2022-10-02 14:33:23
HTML5 JS压缩图片并获取图片BASE64编码上传
2024-04-17 10:25:44
MySQL查询优化之查询慢原因和解决技巧
2024-01-23 13:36:09
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2023-07-15 17:55:01
![](https://img.aspxhome.com/file/2023/9/55989_0s.gif)
用户体验设计中用到的统计学方法
2009-07-12 08:26:00
JS实现利用两个队列表示一个栈的方法
2024-02-26 12:41:03
![](https://img.aspxhome.com/file/2023/4/56534_0s.jpg)
ASP模拟POST提交数据的方法
2010-01-14 20:06:00
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2022-04-22 22:35:17
JS上传图片前实现图片预览效果的方法
2024-04-30 10:10:12
用画为5.12地震受灾同胞们祈福
2008-05-20 12:08:00
![](https://img.aspxhome.com/file/UploadPic/20085/20/200852012169748s.jpg)
Python 编程操作连载之字符串,列表,字典和集合处理
2021-08-16 11:27:54
![](https://img.aspxhome.com/file/2023/9/72809_0s.png)
Django打印出在数据库中执行的语句问题
2024-01-21 04:26:41
X/HTML5 v.s. XHTML2(II)
2008-06-18 13:19:00