pymysql如何设置在执行sql时,输出完整的sql
时间: 2024-03-16 17:45:33 浏览: 7
在 PyMySQL 中,可以通过在创建 Connection 对象时设置 `cursorclass=pymysql.cursors.DictCursor`,并打开 `echo=True` 的方式来输出完整的 SQL 语句。示例代码如下:
```python
import pymysql.cursors
# 创建 Connection 对象并打开 echo
connection = pymysql.connect(
host='localhost',
user='root',
password='password',
db='test',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor,
echo=True
)
# 创建 Cursor 对象并执行 SQL
with connection.cursor() as cursor:
sql = "SELECT * FROM `users` WHERE `name`=%s"
cursor.execute(sql, ('John',))
result = cursor.fetchall()
# 关闭 Connection 对象
connection.close()
```
在上述代码中,当执行 SQL 语句时,会输出完整的 SQL 语句,如下所示:
```
SELECT * FROM `users` WHERE `name`='John'
```
需要注意的是,打开 `echo=True` 可能会暴露敏感信息,因此在生产环境中请勿使用。