【问题标题】:Syntax Error with Python MySQL ConnectorPython MySQL 连接器的语法错误
【发布时间】:2017-11-20 01:28:42
【问题描述】:

我正在为 Python 中的一个简单查询而苦苦挣扎。

查询是(集中在Python中的一行):

SELECT SUM(valor) FROM base WHERE deb="Itau" and MONTH(data)=11 and YEAR(data)=2017

我在该行得到一个 SyntaxError

query = ("SELECT SUM(valor) FROM base WHERE cred="Itau" and MONTH(data)=11 and YEAR(data)=2017")

然后我使用cursor.execute(query) 运行查询。

我不明白的是,当使用 Sequel Pro 或直接在 MariaDB shell 中时,查询工作正常。

知道那可能是什么吗?

请随时批评该方法。目的是使用 Python 从 MariaDB 检索信息,然后将其提供给 HTML Web 应用程序上的表格(DataTable)和图表(Chart.JS 或 Moris.JS)。

非常感谢。

【问题讨论】:

  • 语法高亮不泄露?
  • 我无法识别,我得到(^ 就在 Itau 下方)文件“testebase.py”,第 20 行 query_saidas = ("SELECT SUM(valor) FROM base WHERE cred="Itau"和 MONTH(data)=11 and YEAR(data)=2017") ^ SyntaxError: invalid syntax

标签: python mysql sql mariadb


【解决方案1】:

您的报价是导致问题的原因。像这样在双引号中使用单引号

query = ("SELECT SUM(valor) FROM base WHERE cred='Itau' and MONTH(data)=11 and YEAR(data)=2017")

【讨论】:

  • 使用单引号我得到以下回溯:回溯(最近一次调用最后一次):文件“testebase.py”,第 24 行,在 entradas = cursor.execute(query_entradas) 文件“/ usr/local/lib/python2.7/site-packages/mysql/connector/cursor.py”,第 521 行,在执行 self._connection.handle_unread_result() 文件“/usr/local/lib/python2.7/site- packages/mysql/connector/connection.py",第 1059 行,在 handle_unread_result 中引发错误。InternalError("Unread result found") mysql.connector.errors.InternalError: Unread result found
  • 不知道到底是什么导致了这个问题,但是我重写了连接光标并改为单引号,它工作了,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2018-10-28
  • 2015-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多