以下是无效的代码

#!/usr/bin/python

import urllib
import datetime
import mysql.connector

data['price'] = 100

# Write to database
cnx = mysql.connector.connect(user='user', password='pw', database='db')
cursor = cnx.cursor()

query = ("INSERT INTO records(price) VALUES(%s) ")
cursor.execute(query, (data['price']))

cnx.commit()

cursor.close()
cnx.close()


MySQL具有相应的表和列。


ID(PRIMARY INT AUTO_INCREMENT)
价格(浮动)


没有连接问题。

它给出以下错误。任何想法?


  追溯(最近一次通话):文件“ ./sys-fetchdata.py”,行
  22,在
      cursor.execute(query,(data ['price']))文件“ /usr/lib/python2.7/dist-packages/mysql/connector/cursor.py”,行
  507,执行中
      self._handle_result(self._connection.cmd_query(stmt))文件“ /usr/lib/python2.7/dist-packages/mysql/connector/connection.py”,行
  722,在cmd_query中
      结果= self._handle_result(self._send_cmd(ServerCmd.QUERY,查询))文件
  “ /usr/lib/python2.7/dist-packages/mysql/connector/connection.py”,行
  640,以_handle_result
      引发错误.get_exception(数据包)mysql.connector.errors.ProgrammingError:1064(42000):您有一个
  您的SQL语法错误;检查与您的手册相对应的手册
  第1行上使用正确语法的MySQL服务器版本,在'%s)附近使用

最佳答案

MySQLCursor.execute() methodtuple(或dict)作为第二个(params)参数。

在您的情况下:应为(data['price'], )(请注意其他逗号;如果没有逗号,则括号无效),而不是(data['price'])

10-07 19:09
查看更多