首页 > 解决方案 > 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()

问题可能是什么?

谢谢

标签: python

解决方案


您的问题是您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())

希望这有帮助:)


推荐阅读