【SQlite3】”Cannot operate on a closed database.” と出る時の対処法

症状

conn = sqlite3.connect(dbname)
cur = conn.cursor()

cur.execute('select * from XXXX where post_content=?;', (post_contain_plane_format,))
conn.commit()

cur.close()
conn.close()

Python3でSQLite3を操作中、ProgrammingError:"Cannot operate on a closed database."と表示される。

対策

閉じたデータベースでは操作できません、ということらしい。

確認したら、try-except文の分岐内でconn.close()を使用していた。
VSでコード複製してたら間違えてとっちゃってたみたい。。

解決方法は主に以下の二通りで、

conn.cursor()

でデータベースをオープンな状態に戻すか、

conn.close()

の削除ですね。

sqlite3.connectは、なるべくスクリプトの最後でのみ閉じるようにしましょう。

以上、”Cannot operate on a closed database.”エラーの解決方法でした。

まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
■未経験OK!プログラミングやIT業界に興味ある方ご連絡ください‎。(๑ > ﻌ <`)و✧
━━━━━━━━━━━━━━━━━
Python、Touchdesigner、M5Stack、Fusionをこよなく愛すフルスタックエンジニア兼ヨギー。
大学は心理学専攻、趣味はヘルスケア全般。脳波デバイスの自作とやインタラクティブアート制作がライフワークです。

普段は1-10という会社でクリエイティブをやってます。リファラル採用お繋ぎ出来るので、興味ある方は希望職種と経歴添えてメッセください。一度ご飯行きましょう。(プロデューサー、営業職も可)

↓日常垢
Instagram:@malmal0v0

まる。をフォローする

Pythonの新着記事一覧

Yt-dlpにてHTTP Error 403: Forbiddenエラーが出る時の対処法
【Selenium】PythonでTimeタグのdatetime属性を取得する方法
Anaconda promptのベースディレクトリを変更する方法(Python)
Anaconda promptのフォントや背景色を自分好みにデザインする方法(Python)
DepthAIにてRuntimeError: Failed to find device after booting, error message: X_LINK_DEVICE_NOT_FOUNDと表示される場合の対処法
タイトルとURLをコピーしました