我是Python和Python的MySQL适配器的新手。我不确定我是否遗漏了一些显而易见的东西:
db = MySQLdb.connect(# db details omitted)
cursor = self.db.cursor()
# WORKS
cursor.execute("SELECT site_id FROM users WHERE username=%s", (username))
record = cursor.fetchone()
# DOES NOT SEEM TO WORK
cursor.execute("DELETE FROM users WHERE username=%s", (username))
有什么想法吗?
可能您违反了外键约束。
你上面的代码, 只需添加对
self.db.commit()
的调用。这一功能远不是什么烦恼:
它可以避免数据损坏问题 当查询中有错误时。
我猜您使用的是一个支持事务的存储引擎(例如InnoDB),但在删除之后不会调用
db.commit()
。如果不提交,删除的效果将被丢弃。见http://mysql-python.sourceforge.net/FAQ.html#my-data-disappeared-or-won-t-go-away:
另请参见这个类似的SO问题:Python MySQLdb update query fails
相关问题 更多 >
编程相关推荐