python - 程序退出时MySQL行被删除

标签 python mysql mysql-python

我正在使用 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()

这显示程序退出之前的行,然后当程序再次运行时不显示任何内容。

预先感谢您的所有帮助。

最佳答案

看起来您需要在执行查询后connection.commit()进行更改(将connection替换为您的数据库连接变量)。

http://docs.python.org/library/sqlite3.html

Connection.commit(): 该方法提交当前事务。如果不调用此方法,则自上次调用 commit() 以来所做的任何操作对于其他数据库连接都是不可见的。如果您想知道为什么看不到写入数据库的数据,请检查您没有忘记调用此方法。

关于python - 程序退出时MySQL行被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58141624/

相关文章:

mysql - 由于 'Sending passwords in plain text without SSL/TLS is extremely insecure.',ansible mysql 复制无法将 master 更改为

python - 如何在Docker群中使用ray

python - 打印字符串的变量/动态列表

php - 制作一个简单的日历

php - 创建时间表时遇到问题

mysql - 在远程磁盘上创建脚本轮换备份

python - 错误 "Could not find a version that satisfies the requirement flask (from versions: ) No matching distribution found for flask"

Python re.findall 获取值

php - 学说 dql 没有返回 MySQL 所期望的结果

python - mysqlclient偶尔崩溃,建立TLS连接