我有一个类,其中两个变量设置为某个默认值。我定义了一个函数,在这个函数中我将这些变量声明为全局变量。我得到一个错误,它说变量没有定义。一个变量是counter,它将在每次函数调用上递增,而另一个变量必须在每次调用上附加消息。在附加多条消息并且计数器值达到某个阈值后,我想将所有这些消息插入到MySQL数据库中。 但变量不是附加值。它显示变量未定义。在
class Message():
insertStatement= ''
insertCounter = 0
def Save(self, msg)
global insertCounter
global insertStatement
if msg.topic.startswith("topic1/"):
insertStatement += "INSERT INTO mydatabase.table VALUES (" + msg.payload.decode("utf-8") + "," + datetime + ");"
elif msg.topic.startswith("topic2/"):
insertStatement += "INSERT INTO mydatabase.table1 VALUES (" + msg.payload.decode("utf-8") + "," + datetime + ");"
elif msg.topic.startswith("topic3/")
insertStatement += "INSERT INTO mydatabase.table2 VALUES (" +msg.payload.decode("utf-8") + "," + datetime + ");"
elif msg.topic.startswith("messages"):
insertStatement += "INSERT INTO mydatabase.table3 VALUES ('" + msg.topic + "'," + msg.payload.decode("utf-8") + "," + datetime + ");"
else:
return
insertcounter +=1
if(insertCounter > 1000):
for result in cursor.execute(insertStatement, multi=True):
print result.row_count # i changed it to result
你的代码中有几个错误,请更新并检查。在
insertCounter
和递增变量{self.insertCounter+1
result
,而不是{您可能只需要实例变量:
作为一个程序员,你应该非常,非常,非常努力不使用全局变量。在
请检查最后一行。它应该是
result
,而不是reslut
。在相关问题 更多 >
编程相关推荐