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

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

相关推荐
百锦再11 小时前
第11章 泛型、trait与生命周期
android·网络·人工智能·python·golang·rust·go
zbhbbedp282793cl13 小时前
如何在VSCode中安装Python扩展?
ide·vscode·python
Python私教15 小时前
Python 开发环境安装与配置全指南(2025版)
开发语言·python
百锦再16 小时前
第12章 测试编写
android·java·开发语言·python·rust·go·erlang
熠熠仔16 小时前
QGIS 3.34+ 网络分析基础数据自动化生成:从脚本到应用
python·数据分析
测试199816 小时前
Appium使用指南与自动化测试案例详解
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
神仙别闹16 小时前
基于 C++和 Python 实现计算机视觉
c++·python·计算机视觉
hongjianMa17 小时前
【论文阅读】Hypercomplex Prompt-aware Multimodal Recommendation
论文阅读·python·深度学习·机器学习·prompt·推荐系统
饼干,18 小时前
第23天python内容
开发语言·python
酷柚易汛智推官18 小时前
基于librespot的定制化Spotify客户端开发:开源替代方案的技术实践与优化
python·开源·酷柚易汛