2
私はSQLiteのdatadase用の単純なクラスを作成しています。新しいテーブルを挿入すると変更されません。 return文がありませんgetAll
sqliteでの挿入Pythonはテーブルを変更しません
DB.py
import sqlite3
class DB:
def __init__(self, **kwargs):
self.db = sqlite3.connect('passwods.db')
self.c = self.db.cursor()
self.c.execute('CREATE TABLE IF NOT EXISTS passwords (name, value)')
def insert(self, alias, cipher):
column = (alias, cipher)
self.c.execute('INSERT INTO passwords (name, value) VALUES (?,?)', column)
self.db.commit()
def get(self, alias):
pk = (alias,)
self.c.execute('SELECT * FROM passwords WHERE name=?', pk)
def getAll(self):
self.c.execute('SELECT * FROM passwords')
インタラクティブシェル
>>> from DB import DB
>>> db = DB()
>>> db.insert('firstName', 'firstValue')
>>> print(db.getAll())
None
>>>
データを変更するときにコミットする必要があります。 – polku
とまったく同じです。クエリ以外のデータベース "トランザクション"の場合は、 'execute()'の後に 'commit()'を使用する必要があります。あなたの場合は、 'insert'関数の最後に' self.db.commit() 'がある可能性があります。 –
commit()を追加しましたが、まだ動作しません – Rodion