【Python - 类库 - PyMySQL】(02)使用“PyMySQL“插入变量

使用 PyMySQL 插入变量

在使用 PyMySQL 操作 MySQL 数据库时,可以通过占位符将变量传递给 SQL 语句,从而实现动态插入数据。这种方法不仅简化了代码,还能有效防止 SQL 注入。

示例代码

以下是一个将学生信息插入数据库的示例:

python 复制代码
import pymysql

# 建立数据库连接

connection = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    db='student_db',
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    # 创建游标对象
    cursor = connection.cursor()

    # 定义变量
    name = 'Alice'
    gender = 'Female'
    age = 18

    # 插入语句,使用占位符 %s
    sql = "INSERT INTO student (name, gender, age) VALUES (%s, %s, %s)"

    # 执行插入操作
    cursor.execute(sql, (name, gender, age))

    # 提交事务
    connection.commit()

    print("数据插入成功!")
finally:
    # 关闭游标和连接
    cursor.close()
    connection.close()
注意事项
  1. **占位符使用 **%s:无论变量类型是字符串、数字还是其他类型,都统一使用 %s
  2. 防止 SQL 注入:通过参数化查询,避免直接拼接字符串带来的安全风险。
  3. 事务管理 :执行插入操作后需调用 commit() 提交事务,否则更改不会生效。
  4. 关闭资源:操作完成后,务必关闭游标和数据库连接以释放资源。

这种方法适用于大多数场景,尤其是在需要动态传递多个变量时,能显著提高代码的可读性和安全性。

相关推荐
Katecat9966343 分钟前
YOLO11分割算法实现甲状腺超声病灶自动检测与定位_DWR方法应用
python
玩大数据的龙威1 小时前
农经权二轮延包—各种地块示意图
python·arcgis
ZH15455891311 小时前
Flutter for OpenHarmony Python学习助手实战:数据库操作与管理的实现
python·学习·flutter
belldeep1 小时前
python:用 Flask 3 , mistune 2 和 mermaid.min.js 10.9 来实现 Markdown 中 mermaid 图表的渲染
javascript·python·flask
喵手1 小时前
Python爬虫实战:电商价格监控系统 - 从定时任务到历史趋势分析的完整实战(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·电商价格监控系统·从定时任务到历史趋势分析·采集结果sqlite存储
喵手2 小时前
Python爬虫实战:京东/淘宝搜索多页爬虫实战 - 从反爬对抗到数据入库的完整工程化方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·京东淘宝页面数据采集·反爬对抗到数据入库·采集结果csv导出
B站_计算机毕业设计之家2 小时前
猫眼电影数据可视化与智能分析平台 | Python Flask框架 Echarts 推荐算法 爬虫 大数据 毕业设计源码
python·机器学习·信息可视化·flask·毕业设计·echarts·推荐算法
PPPPPaPeR.2 小时前
光学算法实战:深度解析镜片厚度对前后表面折射/反射的影响(纯Python实现)
开发语言·python·数码相机·算法
JaydenAI2 小时前
[拆解LangChain执行引擎] ManagedValue——一种特殊的只读虚拟通道
python·langchain
骇城迷影2 小时前
Makemore 核心面试题大汇总
人工智能·pytorch·python·深度学习·线性回归