【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. 关闭资源:操作完成后,务必关闭游标和数据库连接以释放资源。

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

相关推荐
飞翔的佩奇2 分钟前
【完整源码+数据集+部署教程】【运动的&足球】足球比赛分析系统源码&数据集全套:改进yolo11-RFAConv
前端·python·yolo·计算机视觉·数据集·yolo11·足球比赛分析系统
智启七月18 分钟前
Dexbotic 开源深度解析:重构具身智能 VLA 研发的技术基石与实现路径
人工智能·python
beyond阿亮1 小时前
nacos支持MCP Server注册与发现
java·python·ai·nacos·mcp
感哥1 小时前
Python 装饰器
python
快秃头的码农1 小时前
vscode搭建python项目隔离的虚拟环境
ide·vscode·python
mxpan1 小时前
从 0 到 1:用 Python 对接阿里云 DashScope,轻松实现 AI 对话功能
python·ai编程
被放养的研究生2 小时前
dir()与help()
python
我的xiaodoujiao2 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 20--PO(POM) 设计模式和用例撰写
python·学习·测试工具·设计模式·pytest
子不语1802 小时前
深度学习(一)——基础知识:Python语言/解释器/环境/编辑器
python·学习
爱学习的爬虫3 小时前
Python实现Jenkins实现自动化执行Job
python·自动化·jenkins