【问题标题】:PYMYSQL ERROR pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax ")PYMYSQL ERROR pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax")
【发布时间】:2022-01-27 11:29:17
【问题描述】:

这是完整的错误

Traceback (most recent call last):
  File "Desktop/Work/RDS_LAMDA_Stuff/RDS_Node_Stuff/test.py", line 26, in <module>
    handler()
  File "Desktop/Work/RDS_LAMDA_Stuff/RDS_Node_Stuff/test.py", line 17, in handler
    cursor.execute('SELECT * FROM Reads')
  File "Desktop/Work/RDS_LAMDA_Stuff/RDS_Node_Stuff/pymysql/cursors.py", line 148, in execute
    result = self._query(query)
  File "Desktop/Work/RDS_LAMDA_Stuff/RDS_Node_Stuff/pymysql/cursors.py", line 310, in _query
    conn.query(q)
  File "Desktop/Work/RDS_LAMDA_Stuff/RDS_Node_Stuff/pymysql/connections.py", line 548, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "Desktop/Work/RDS_LAMDA_Stuff/RDS_Node_Stuff/pymysql/connections.py", line 775, in _read_query_result
    result.read()
  File "Desktop/Work/RDS_LAMDA_Stuff/RDS_Node_Stuff/pymysql/connections.py", line 1156, in read
    first_packet = self.connection._read_packet()
  File "Desktop/Work/RDS_LAMDA_Stuff/RDS_Node_Stuff/pymysql/connections.py", line 725, in _read_packet
    packet.raise_for_error()
  File "Desktop/Work/RDS_LAMDA_Stuff/RDS_Node_Stuff/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "Desktop/Work/RDS_LAMDA_Stuff/RDS_Node_Stuff/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Reads' at line 1")

这里是我的代码

from multiprocessing import connection
import pymysql
from pymysql.cursors import Cursor

# RDS config
endpoint = '********'
username = '********'
password = '********'
database_name = '*********'

#connection config

connection = pymysql.connect(host=endpoint,user=username,passwd=password,db=database_name)

def handler():
    cursor = connection.cursor()
    cursor.execute('SELECT * FROM Reads')

    rows = cursor.fetchall()

    for row in rows:
        print("{0} {1} {2} {3}".format(row[0], row[1], row[2], row[3]))



handler()

我的数据库中有 2 个其他表,当我查询它们时它们工作正常,但是这个表似乎是唯一导致错误的表。

如果这太模糊,请随时询问更多

【问题讨论】:

    标签: python mysql amazon-rds pymysql


    【解决方案1】:

    在这种情况下值得检查 manual - 并且 Reads 是保留字,因此必须反引号 - 最好还是不要使用保留字,否则您将永远不得不记住在代码中反引号..

    【讨论】:

    • 感谢您的帮助和快速响应,一个简单的名称更改就成功了
    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 2015-11-14
    • 2014-10-14
    • 2012-11-20
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多