Python PyMySQL 函数详解及应用示例265


PyMySQL 是一个纯 Python 实现的 MySQL 客户端库,它提供了与 MySQL 数据库交互的便捷方式。本文将深入探讨 PyMySQL 的常用函数,并结合具体的应用示例,帮助读者快速掌握 PyMySQL 的使用方法。

PyMySQL 的核心功能在于连接数据库、执行 SQL 查询和处理结果。它提供了丰富的函数来满足各种数据库操作需求,从简单的查询到复杂的交易,都能轻松应对。在使用 PyMySQL 之前,需要先安装它:pip install PyMySQL

1. 建立数据库连接

连接数据库是使用 PyMySQL 的第一步。 connect() 函数是建立连接的关键。它接受多个参数,其中最重要的包括主机地址、用户名、密码和数据库名称。```python
import pymysql
try:
# 建立连接
connection = (host='localhost',
user='your_username',
password='your_password',
database='your_database',
charset='utf8mb4') # 建议使用 utf8mb4 编码
# 获取游标
cursor = ()
# ... 执行SQL操作 ...
# 关闭游标和连接
()
()
except as e:
print("Error connecting to MySQL:", e)
```

这段代码展示了如何建立一个基本的数据库连接。 记得将占位符替换成你的实际信息。 charset='utf8mb4' 非常重要,它确保你的数据库能够正确处理各种字符集,避免乱码问题。 错误处理也很关键,try...except 块可以捕获连接过程中可能出现的错误。

2. 执行 SQL 查询

() 函数用于执行 SQL 查询。它接受 SQL 语句作为参数。对于 SELECT 语句,可以使用 () 或 () 获取查询结果。```python
# 执行查询
("SELECT * FROM users")
# 获取所有结果
results = ()
for row in results:
print(row)
# 获取单条结果
single_result = ()
print(single_result)
# 执行INSERT, UPDATE, DELETE语句
("INSERT INTO users (name, age) VALUES (%s, %s)", ('John Doe', 30))
() # 提交事务,使更改生效
```

这段代码展示了如何执行 SELECT 语句并获取结果。 fetchall() 获取所有结果,而 fetchone() 只获取第一条结果。 对于 INSERT, UPDATE, DELETE 语句,必须调用 () 来提交事务,使更改持久化到数据库。 注意参数化查询的使用,这能有效防止SQL注入漏洞。

3. 参数化查询

为了防止 SQL 注入,强烈建议使用参数化查询。 PyMySQL 使用占位符 %s 来表示参数位置,然后通过第二个参数传递参数值。这比直接拼接 SQL 字符串更安全可靠。```python
username = "user' OR '1'='1" # 恶意输入
# 不安全的查询方式
# unsafe_query = "SELECT * FROM users WHERE username = '" + username + "'"
# 安全的查询方式
safe_query = "SELECT * FROM users WHERE username = %s"
(safe_query, (username,)) # 使用元组传递参数
results = ()
```

上述代码展示了参数化查询的安全性。即使输入包含恶意 SQL 代码,参数化查询也能阻止其执行。

4. 事务处理

对于需要保证数据一致性的操作,使用事务处理非常重要。 PyMySQL 提供了事务处理机制,确保一组 SQL 操作要么全部成功,要么全部失败。```python
try:
() # 开始事务
("UPDATE accounts SET balance = balance - 100 WHERE id = 1")
("UPDATE accounts SET balance = balance + 100 WHERE id = 2")
() # 提交事务
except as e:
() # 回滚事务
print("Transaction failed:", e)
```

这段代码展示了如何使用事务处理。 begin() 开始事务,commit() 提交事务,rollback() 回滚事务。 如果任何 SQL 操作失败,事务将回滚,保证数据一致性。

5. 游标类型

PyMySQL 支持不同的游标类型,例如 ,它返回字典形式的结果,方便访问数据。```python
cursor = ()
("SELECT id, name FROM users")
for row in ():
print(row['id'], row['name'])
```

这段代码展示了如何使用 DictCursor 获取字典形式的结果。

6. 关闭连接

使用完毕后,务必关闭游标和数据库连接,释放资源。 使用 () 和 () 关闭它们。

本文详细介绍了 PyMySQL 的常用函数及应用示例,包括连接数据库、执行 SQL 查询、参数化查询、事务处理以及游标类型等。 掌握这些知识,可以帮助你高效地使用 PyMySQL 与 MySQL 数据库进行交互。 记住,安全性和错误处理始终是编程中的重要考虑因素,在实际应用中应注意避免 SQL 注入漏洞,并妥善处理可能出现的错误。

2025-06-23


上一篇:Python 列表高效写入和读取文件:多种方法及性能比较

下一篇:Python `append()` 函数详解:列表操作的利器