python - Python SQLite3 数据库不保存数据 Repl.it
问题描述
我正在尝试在 python 中编写一个 sql 数据库,该数据库询问您的姓名并将其存储在数据库中。问题是它存储了它,但是当我重新加载时,数据就消失了。这是代码:
import sqlite3
conn = sqlite3.connect('python.db')
c = conn.cursor()
def create_table():
c.execute('CREATE TABLE IF NOT EXISTS RecordONE (Number REAL, Name TEXT)')
name = input("What is your name?")
def data_entry():
number = "1234"
c.execute("INSERT INTO RecordONE (Number, Name) VALUES(?, ?)", (number, name))
conn.commit()
create_table()
data_entry()
c.close()
conn.close()
问题可能是什么?
谢谢
解决方案
您的问题是您con.commit()
在调用函数并实际写入数据库之前放置。这是一个工作示例:
# Imports
import sqlite3
# Establish connection to database
conn = sqlite3.connect('python.db')
c = conn.cursor()
# Create global variable name
name = ""
def create_table():
global name # Retrieve global variable name
c.execute('CREATE TABLE IF NOT EXISTS RecordONE (Number REAL, Name TEXT)') # DB execution
name = input("What is your name?") # Input to global variable name
def data_entry():
number = "1234"
c.execute("INSERT INTO RecordONE (Number, Name) VALUES(?, ?)", (number, name)) # Execute sql
# Call functions
create_table()
data_entry()
# Save changes to DB
conn.commit()
# Close connection
c.close()
conn.close()
然后你可以在这段代码中看到你刚刚创建的条目:
c.execute('SELECT * FROM RecordONE')
print(c.fetchall())
希望这有帮助:)
推荐阅读
- r - R:如何计算运动物体完成的电路数量?
- microsoft-graph-api - Microsoft 图表出错,Sendmail 出现 ODataType 错误
- puppet-enterprise - 从 Puppet Enterprise 中的任务或计划运行清单(类)
- java - Spring Boot Cucumber 测试无法解析占位符“random.uuid”
- javascript - 如何在 JavaScript/ReactJs 中检索图像的所有细节和属性?
- google-colaboratory - 可以在欧洲使用 Colab Pro 吗?
- python - 使用文本文件中的信息对列表进行排序
- python - 为什么这些整数被转换为随机字符?
- mysql - 由于未知原因无法执行查询字符串
- python - 如何将 keras categorical_accuracy 与多维输出一起使用?