我正在尝试使用sql查询中的引号来解决问题。我知道在stackoverflow上问了很多问题。但没有人为我工作。可能是因为我正在使用其他框架(pyMySQL)进行sql连接。我尝试了参数化的mysql查询:
conn = pymysql.connect(host ='host', user='user', passwd='user', db='db', charset='utf8mb4')
cur = conn.cursor()
cur.execute("USE db")
cur.execute("UPDATE table SET callback_data = %s, message = %s, photo = %s, location = %s, first_name_last_name = %s WHERE user_id=%s",
(callback_data, message, photo, location, first_name_last_name, user_id))
cur.connection.commit()
cur.close()
conn.close()
但我总是收到%s的错误(错误消息:预期的,得到%s)。我的python版本是3.6.1。如何在sql查询中转义引号?谢谢。
发布于 2017-09-15 15:59:11
首先,正如Ilja sayed所说,你必须对mysql保留字使用反引号。
然后,对于文本/varchar字段,您可以使用json转储:
import json
..。
cur.execute("UPDATE `table` SET callback_data = %s, message = %s, photo = %s, location = %s, first_name_last_name = %s WHERE user_id=%s", % (
json.dumps(callback_data),
json.dumps(message),
json.dumps(photo),
json.dumps(location),
json.dumps(first_name_last_name),
json.dumps(user_id)
)
https://stackoverflow.com/questions/44892853
复制相似问题