我创建了一个小的/基本的python脚本来将数据插入MySQL数据库。我包括一些错误处理-主要是关闭连接和/或防止出现错误时挂起连接(…但也忽略一些错误)。
我认为我所拥有的(见下文)是正确的-它似乎工作正常。但有时我会遇到“连接过多”的错误——我认为这意味着我根本没有正确地关闭连接(或者错误处理不正确)。
conn=MySQLdb.connect(host=####, user=####, passwd=####, db=####)
curs=conn.cursor()
try:
curs.execute(sql)
conn.commit()
except MySQLdb.Error as e:
if e[0]!= ###:
raise
finally:
curs.close()
conn.close()
(我也试过没有finally:
)
另一点(我认为很重要)是MySQL数据库使用了InnoDB存储引擎。这是我第一次使用InnoDB引擎,也许这里与MyISAM有一些相关的差异,我不知道这些差异(比如conn.commit()
,但是有一个错误)。。。。这似乎是我所有其他问题的根源!
提前谢谢
我认为问题在于我没有在
except
子句中调用conn.rollback()
(因此,连接没有正确关闭)。有一行代码(见下文)似乎可以解决问题(我不能确切地确定是否是这个问题—如果有人能确认这一点就好了)。相关问题 更多 >
编程相关推荐