【发布时间】:2017-12-07 03:39:18
【问题描述】:
我正在尝试解决我的 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 查询中转义引号?谢谢。
【问题讨论】:
-
"table" 是reserved word,因此您必须用反引号将其引用才能将其用作标识符。否则,您的执行调用和查询字符串似乎很好。元组中有 6 个占位符和 6 个参数。
-
检查这个答案是否对您有帮助:stackoverflow.com/a/61042304/8939258
-
检查这个答案是否对您有帮助:stackoverflow.com/a/61042304/8939258
标签: python mysql python-3.x mysql-real-escape-string pymysql