使用 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()
注意事项
- **占位符使用 **
%s
:无论变量类型是字符串、数字还是其他类型,都统一使用%s
。 - 防止 SQL 注入:通过参数化查询,避免直接拼接字符串带来的安全风险。
- 事务管理 :执行插入操作后需调用
commit()
提交事务,否则更改不会生效。 - 关闭资源:操作完成后,务必关闭游标和数据库连接以释放资源。
这种方法适用于大多数场景,尤其是在需要动态传递多个变量时,能显著提高代码的可读性和安全性。