python - 在pymysql中获取执行的sql语句
问题描述
我正在执行一个无效的查询,但我希望能够准确地看到正在执行的查询是什么pymysql
来调试它。有没有办法做类似的事情:
try:
self.cursor.execute(SQL, tuple(PARAMS))
except:
print (self.cursor.last_executed_statement) # ??
解决方案
根据文档,您应该能够:
print (self.cursor.statement)
此只读属性以字符串形式返回最后执行的语句。该
statement
属性可用于调试和显示发送到 MySQL 服务器的内容。如果执行了多语句字符串,则该字符串可以包含多个语句。这发生在 multi=True 的 execute() 上。在这种情况下,该
statement
属性包含整个语句字符串,并且execute()
调用返回一个迭代器,该迭代器可用于处理各个语句的结果。此迭代器的statement
属性显示各个语句的语句字符串。
推荐阅读
- java - 了解 OpenGL 基础知识
- java - JCombobox 不能在 jar 上工作
- java - Mockito 没有返回我需要的东西
- c++ - C++17 标准库包括不使用 Visual Studio 2017 中的 Android 项目
- powershell - 如何制作 PowerShell FTPS 脚本 (SSL) 来上传单个文件?
- java - 如何以编程方式表示阶乘
- algorithm - 在更改标志之间处理系统重启/崩溃
- c++ - dyld:使用 VTK 运行 C++ 项目时找不到符号 _PyBaseObject_Type
- docker - 在 OS (CoreOS) 重启 Docker 启动多个容器
- php - 字符串到 stdClass php