我正在使用Python和MySQLdb向我的数据库添加行。似乎当我的脚本退出时,行将被删除。脚本退出之前的最后一行在表格上执行“select *”,显示我的一行。当我重新运行脚本时,第一行(打开连接后)执行相同的“select *”并返回零结果。我真的很茫然。我已经工作了大约2个小时,并且无法理解可以访问我的数据库的内容。
此外,在运行脚本之间,我从终端手动运行“select *”,结果为零。
如果我从终端手动添加一行,它似乎会持续。
插入行的查询:
cursor.execute("INSERT INTO sessions(username, id, ip) VALUES (%s, %s, %s)", (username, SessionID, IP]))
我用来检查数据的查询:
cursor.execute("select * from sessions")
print cursor.fetchall()
这显示程序退出之前的行,然后在程序再次运行时不显示任何内容。
提前感谢所有帮助。
答案 0 :(得分:5)
在执行查询后,您似乎需要cursor.commit()您的更改。
http://docs.python.org/library/sqlite3.html
<强> Connection.commit()强>: 此方法提交当前事务。如果不调用此方法,则自上次调用commit()以来所执行的任何操作都不会从其他数据库连接中看到。如果您想知道为什么没有看到您写入数据库的数据,请检查您是否忘记调用此方法。
答案 1 :(得分:0)
检查另一个问题:Python MySQLdb update query fails
您可以找到一些关于如何提交,如何使用自动提交进行连接等的示例