很抱歉,以前是否曾张贴过类似的消息(毫无疑问),但我似乎找不到类似的问题。我正在使用Python,SQL和环聊聊天构建基本的售票系统机器人。聊天部分不是很重要。在核心级别,我要做的就是用Python脚本更新非常基本的SQL数据库。我可以插入并查看我的记录。请注意,我也在环聊聊天机器人中使用它,因此我为此表示歉意,同时我的代码目前处于“完全开放状态”,因为我通过分别查看每个变量进行调试。完成后,我会把它们全部整理干净。
elif "!update" in messagesentstr:
messagesentstrsplit = messagesentstr.split(" ", 3) #Takes string from Hangouts Chat message and splits it in to 4
messagesentstrsplitid = messagesentstrsplit[2] #Takes the row number to be updated from the chat message
myint = int(messagesentstrsplitid) #Converts the number to an int from string
mycursor.execute("SELECT issue FROM tickets WHERE id = %d" % (myint)) #Pulls the relevant record
myresult = mycursor.fetchone()
outputwithchar = json.dumps(myresult)
outputnochar = outputwithchar[2:-2]
updatedcol = outputnochar + ' ' + messagesentstrsplit[3]
mytuple = (updatedcol,)
sqlupdatecom = "UPDATE tickets SET issue = (%s) WHERE id = (%d)"
mycursor.execute(sqlupdatecom, mytuple, myint)
mydb.commit()
print(mycursor.rowcount, "record(s) affected")
updatedcolmsg = 'The ticket with the ID ' + str(myint) + ' has been updated to: "' + updatedcol + '"'
texttoshow = (updatedcolmsg)
在一个示例中,messagesentstr等于“!update 12,然后执行此操作”。第12行已经有“我有这个问题”。在问题列下。
运行时,我得到“ -1条记录受到影响”,但没有错误,并且我的记录保持不变。我希望得到“我有这个问题。然后我做到了。的问题ID为12。
谢谢
编辑:已经注意到,当我输入一个值而不是%s时,它可以正常工作,因此我的字符串实际上可能不是字符串
答案 0 :(得分:0)
对于遇到类似问题的任何人,请更改为:
sqlupdatecom = (
"UPDATE tickets SET issue = %s "
"WHERE id = %s")
mycursor.execute(sqlupdatecom, (updatedcol, myint))
mydb.commit()
为我修复了