1

Python スクリプトを取得して sqlite データベースを更新する際に問題が発生しています。

最初の部分はうまくいくようです:

conn = sqlite3.connect('/Users/test/Desktop/my-accounts.db')
currentAccount = None

for row in conn.execute('SELECT email FROM accounts WHERE active=0'):
    currentAccount = row[0]
    print "Checking out: ",currentAccount
    break

if currentAccount is None:
    print "No available accounts"

次に、この次の部分では、変数 currentAccount を取得し、その値が存在するデータベース内の行を更新します。

else:
    conn.execute('UPDATE accounts SET active=1 WHERE email=?', [currentAccount,])

conn.close()

コンソールにエラーは表示されませんが、データベースは更新されません。email 列は VARCHAR で、アクティブな列は INT です。

ありがとう。

解決策conn.commit()はexecute() の後に追加することでした

4

1 に答える 1

1

conn.commit()の後に追加してみてくださいconn.execute("XXX")。場合によっては、sqlite3 が実行を自動コミットしないことがあります。

于 2013-03-30T08:15:48.657 に答える