Python pymysql向SQL语句中传参的方法有哪些
作者:CalmWind
时间:2023-07-05
浏览:3
SQLPro
SQLPro 是一款macOS平台上数据库管理应用,避免使用非法,享受更全面的支持和更新。它更贴近日常 macOS 使用场景,处理高频操作时整体会更顺手一些。
¥119
macOS
2026-09-24
目录Python-pymysql如何向SQL语句中传参方法一:不传递参数方法二:使用数组传递参数方法三:使用字典dict类型传递参数Python-pymysql如何向SQL语句中传参方法一:不传递参数##方式一、不传递参数id="01"name="语文"sql="select*fromcoursewherecourse_id='%s'andcourse_name='%s';"%(id,name)##执行数据库查询或命令cursor.execute(sql)方法二:使用数组传
本文目录
目录
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)这种方式,传递的参数对应关系比较清晰。尤其是参数比较多时,使用字典,可以保证传递参数的顺序正确。
作者最新文章
漫蛙网页版免费入口分享
2026-10-13 13:19
卖茶叶妈妈3d漫蛙最新版本下载
2026-10-13 13:18
3ds Max怎么自定义快捷键:修改按键映射与保存配置
2026-09-29 14:23
PS快捷键有哪些 photoshop工具快捷键怎么设置
2026-09-28 10:35
python 注解:环境隔离、依赖管理与验证排错实操
2026-09-05 07:25
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































