1064错误python到mysql

时间:2016-10-01 20:41:08

标签: python mysql

我有一个名称和价格的数据库,当我通过一批代码运行它并每天更新一个代码并更新第二个数据库的所有名称,直到它到达' aapl'此时它会抛出1064错误,看起来像这样

        -----------------------------------
Traceback (most recent call last):
  File "testrun.PY", line 45, in <module>
    t.Push.find_all(conn, cursor)
  File "c:\tradetools.py", line 198, in find_all
    Push.find_streak(conn, cursor, name)
  File "c:\tradetools.py", line 189, in find_strea
k
    .format(c, name))
  File "C:\AppData\Local\Programs\Python\Python35\lib\site-packages\p
ymysql\cursors.py", line 166, in execute
    result = self._query(query)
  File "C:\AppData\Local\Programs\Python\Python35\lib\site-packages\p
ymysql\cursors.py", line 322, in _query
    conn.query(q)
  File "C:\AppData\Local\Programs\Python\Python35\lib\site-packages\p
ymysql\connections.py", line 837, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "C:\AppData\Local\Programs\Python\Python35\lib\site-packages\p
ymysql\connections.py", line 1021, in _read_query_result
    result.read()
  File "C:\AppData\Local\Programs\Python\Python35\lib\site-packages\p
ymysql\connections.py", line 1304, in read
    first_packet = self.connection._read_packet()
  File "C:\AppData\Local\Programs\Python\Python35\lib\site-packages\p
ymysql\connections.py", line 983, in _read_packet
    packet.check_error()
  File "C:\AppData\Local\Programs\Python\Python35\lib\site-packages\p
ymysql\connections.py", line 395, in check_error
    err.raise_mysql_exception(self._data)
  File "C:\AppData\Local\Programs\Python\Python35\lib\site-packages\p
ymysql\err.py", line 102, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.ProgrammingError: (1064, "42000You have an error in your SQL syntax;
 check the manual that corresponds to your MySQL server version for the right sy
ntax to use near 'AAPL''' at line 1")

c:\>

其运行的代码如下所示,为什么更新会为名称appl添加更多逗号?

def find_streak(conn, cursor, name):
    print(name)
    cursor.execute("SELECT * FROM `trade_data`.`import_data`"
                   " WHERE name =%s;", name)
    logs = cursor.fetchall()
    cursor.execute("INSERT IGNORE INTO `trade_data`.`analysis`(`name`) "
               "VALUES (%s) ON DUPLICATE KEY UPDATE "
               "ndays=0;", name)
    conn.commit()
    logs = [list(x) for x in logs]
    logs.sort()
    ....
    cursor.execute ("UPDATE `trade_data`.`analysis` "
         "SET `ndays` = {0} WHERE name='{1}'"
         .format(c, name))
    conn.commit()

它从一张看起来像这样的表中拉出来了

    date|name|price|

并进入

    date|name|result

0 个答案:

没有答案