Python SQLite3更新无法通过inpu工作

2024-03-29 12:55:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过输入更新我的数据库。你知道吗

import sqlite3

conn = sqlite3.connect('datenbank.db')
print ("Opened database successfully")

kunde1 = input("Der Kundename: ")
anzahl1 = input("Anzahl Bewertung: ")


conn.execute('''UPDATE kundenname SET anzahl = ? WHERE kundename = ?''',    
(anzahl1, kunde1))
conn.commit

它没有显示任何错误。。但它没有在数据库中更新吗? 谢谢!你知道吗


Tags: import数据库inputdbconnectconnsqlite3database
1条回答
网友
1楼 · 发布于 2024-03-29 12:55:56

conn.commit不调用commit,它只是访问其实例。因此,一个简单的commit调用和文件关闭应该可以解决这个问题:

import sqlite3
conn = sqlite3.connect('datenbank.db')
print ("Opened database successfully")
kunde1 = input("Der Kundename: ")
anzahl1 = input("Anzahl Bewertung: ")
conn.execute('''UPDATE kundenname SET anzahl = ? WHERE kundename = ?''', (anzahl1, kunde1))
conn.commit()
conn.close()

因为您是在执行序列的中间输入数据,所以最好使用contextmanager

import contextlib

@contextlib.contextmanager
def update_database(kunde1, anzahl1):
   conn = sqlite3.connect('datenbank.db')
   print ("Opened database successfully")
   yield conn #can be used later to update database in or outside the scope of "with"
   conn.execute('''UPDATE kundenname SET anzahl = ? WHERE kundename = ?''', (anzahl1, kunde1))
   conn.commit()
   conn.close()

with update_database(input("Der Kundename: "), input("Anzahl Bewertung: ")) as b:
   pass #do something after

相关问题 更多 >