Pythonpymysql向SQL语句中传参的多种方法 目录 Python-pymysql如何向SQL语句中传参 方法一:不传递参数 方法二:使用数组传递参数 方法三:使用字典dict类型传递参数 Python-pymysql如何向SQL语句中传参 方法一:不传递参数 ## 方式一.不传递参数 id = 01 name = 语文
目录
- Python-pymysql如何向SQL语句中传参
- 方法一:不传递参数
- 方法二:使用数组传递参数
- 方法三:使用字典dict类型传递参数
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)
这种方式,传递的参数对应关系比较清晰。尤其是参数比较多时,使用字典,可以保证传递参数的顺序正确。
到此这篇关于Python-pymysql如何向SQL语句中传参的文章就介绍到这了,更多相关Python sql语句传参内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
本文标题为:Python pymysql向SQL语句中传参的多种方法
- python中defaultdict用法实例详解 2022-10-20
- windows安装python2.7.12和pycharm2018教程 2023-09-03
- Python Pandas如何获取和修改任意位置的值(at,iat,loc,iloc) 2023-08-04
- python线程池ThreadPoolExecutor与进程池ProcessPoolExecutor 2023-09-04
- 在centos6.4下安装python3.5 2023-09-04
- Python实现将DNA序列存储为tfr文件并读取流程介绍 2022-10-20
- Python之路-Python中的线程与进程 2023-09-04
- Python 保存数据的方法(4种方法) 2023-09-04
- python中列表添加元素的几种方式(+、append()、ext 2022-09-02
- CentOS7 安装 Python3.6 2023-09-04