这是一个函数,查询被传递给这个函数。当我一个接一个地执行一个查询时。我没有得到几个查询的结果,查询没有问题,因为我已经用 mysql 控制台交叉检查了它们。
当您在评论中澄清您的问题时,我发布了另一个答案——完全不同的方法。
您是否以自动提交模式连接到数据库?如果不是,要永久应用更改,您必须对COMMIT
它们进行更改。在正常情况下,您不应为每个请求创建新连接。这几乎没有给数据库服务器带来过多的负载:
# Open a connection once
con = mdb.connect(hostname, username, password, dbname)
# Do that *for each query*:
cur = con.cursor()
try:
count = cur.execute(query)
conn.commit() # don't forget to commit the transaction
else:
print "DONE:", query # for "debug" -- in real app you migth have an "except:" clause instead
finally:
cur.close() # close anyway
# Do that *for each query*:
cur = con.cursor()
try:
count = cur.execute(query)
conn.commit() # don't forget to commit the transaction
else:
print "DONE:", query # for "debug" -- in real app you migth have an "except:" clause instead
finally:
cur.close() # close anyway
# Close *the* connection
con.close()
上面的代码直接打进SO。请原谅拼写错误和其他基本语法错误。但这就是它的精神。
最后一句话,打字时我想知道您如何处理异常?是否有可能在您的程序的某个较高级别默默地忽略 MySQLdb 错误?