Python - MySQL语法

2024-04-18 23:31:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python命令来更新mysql的key-duplicate

sql.run("INSERT INTO snapshots (id,username,data) VALUES ('%s','%s','%s') ON DUPLICATE KEY UPDATE data = VALUES(%s)" % (id,user.name,json.dumps(data),json.dumps(data)))

它在数据插入上工作,但是对于键复制,它抛出这个错误

/usr/local/lib/python2.7/dist-packages/memsql/common/database.py at 166 > (1064, 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'{"achievements": {"150": 1448983913.491705, "200": 1448984742.809708, "204": 144\' at line 1')

我试过KEY UPDATE data = '%s'KEY UPDATE data = VALUES(%s)和{},但都没用。在

我到底做错了什么?在


Tags: thetokey命令idjsonyourdata
1条回答
网友
1楼 · 发布于 2024-04-18 23:31:19

错误的根本原因是json转储的字符串带有未转义的"字符,这是由直接将数据替换到查询中造成的。 正如@mgilson所说,使用cursor.execute()方法,数据库驱动程序将负责转义。在

相关问题 更多 >