以下是无效的代码
#!/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()
method将tuple
(或dict
)作为第二个(params
)参数。
在您的情况下:应为(data['price'], )
(请注意其他逗号;如果没有逗号,则括号无效),而不是(data['price'])
。