1064, «У вас ошибка в синтаксисе SQL;…» Python MySQL
Так что я работаю над этим с прошлой пятницы и не могу обойти эту ошибку:
1064, «У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса, чтобы использовать рядом с '[u'161010-035670'] WHERE order_id = 87 'в строке 1" или что-то подобное те же строки, что и эта ошибка.
По сути, мой питон получает данные из базы данных MySQL, он создает случай в SalesForce с использованием Simple-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)) с той же ошибкой. Если я заменил "order_id = 87" и оставил там данные с курсором cursor.execute ("UPDATE rma_order SET rma_num =% s WHERE order_id = 87"% (data)), то он работает нормально и записывает номер дела в правильном формате в база данных, как только я добавляю «Id» в качестве коэффициента с% s, это выдает мне ошибки. Я также пытался с% d с тем же результатом.
Любая помощь будет принята с благодарностью.