【发布时间】:2017-02-19 07:31:03
【问题描述】:
所以我从上周五开始一直在处理这个问题,并且无法解决这个错误:
1064, "您的 SQL 语法有错误;请查看手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 '[u'161010-035670'] WHERE order_id=87' at line 1" 附近 与此错误相同。
基本上,我的 python 将从 MySQL 数据库中获取数据,它使用 Simple-Salesforce 在 SalesForce 中创建一个案例,然后查询它正确创建的案例,但我需要它将案例编号写回到我专门创建的列中的数据库中为票号。
当前代码:
for rowx in xrange(1, sheet.nrows):
SN = sheet.row_values(rowx, start_colx=3, end_colx=None)[0]
print SN
Id = sheet.row_values(rowx, start_colx=6, end_colx=None)[0]
print Id
d = sf.query("SELECT CaseNumber FROM Case WHERE Serial_Number__c ='%s' AND Status = 'New Portal RMA'" % SN)
data = [e["CaseNumber"] for e in d["records"]]
print (data)
try:
con = MySQLdb.connect(user=ur, passwd=pd, host=ht, port=pt, db=db)
cursor = con.cursor()
cursor.execute("UPDATE rma_order SET rma_num=%s WHERE order_id=%s" % (data, Id))
con.commit()
except Error as error:
print(error)
finally:
cursor.close()
con.close()
主要问题在于这行代码:
cursor.execute("UPDATE rma_order SET rma_num=%s WHERE order_id=%s" % (data, Id))
我尝试使用和不使用 '%s' 没有区别,尝试 "...WHERE order_id=%s", (data, Id)) 时出现相同的错误。如果我用 cursor.execute("UPDATE rma_order SET rma_num=%s WHERE order_id=87" % (data)) 替换“order_id=87”并让数据留在那里,那么它可以正常工作并将案例编号以正确的格式写入数据库,只要我添加“Id”作为 %s 的一个因素,它就会给我错误。我也尝试使用 %d 得到相同的结果。
任何帮助将不胜感激。
【问题讨论】:
标签: python mysql python-2.7 salesforce mysql-python