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

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

相关推荐
AI行业学习6 分钟前
CC-Switch v3.16.1 官方下载 | 安装配置详细教程【2026.6.10】
java·开发语言·vue.js·python·mysql·eclipse·html
早起CaiCai31 分钟前
【Pytorch 实践1】手写数字
人工智能·pytorch·python
吴梓穆43 分钟前
Python 语法基础 函数
开发语言·python
Kobebryant-Manba1 小时前
学习文本处理
开发语言·python
m0_617493941 小时前
PaddleOCR报错:OneDnnContext does not have the input Filter 解决方案汇总
python
李可以量化1 小时前
量化迅投 QMT vs 聚宽 (JoinQuant)全面分析
python·量化·qmt·ptrade·聚宽
旅僧1 小时前
运行UMI镜像
python
ellenwan20261 小时前
期货跨期价差程序化怎么做:天勤 SP 合约与腿比例核对
python·区块链
月疯1 小时前
torch:expand和repeate的区别
开发语言·python·深度学习
顾林海2 小时前
Agent入门阶段-编程基础-Python:Python 开发环境与运行方式
python·agent·ai编程