我尝试使用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)
和{
我到底做错了什么?在
错误的根本原因是json转储的字符串带有未转义的
"
字符,这是由直接将数据替换到查询中造成的。 正如@mgilson所说,使用cursor.execute()
方法,数据库驱动程序将负责转义。在相关问题 更多 >
编程相关推荐