0
Python 2.7でsqliteを使用してSQL DBを更新するためにこのスクリプトを作成しました 関数の入力として10個の要素リストがあり、非None要素を更新したいだけです。PythonのSQLiteはコミットコマンドの後にDBを更新しません
ここで、スクリプトを実行したときにエラーが返されない場合でも、スクリプトがif、Update、およびcommitコマンドを通過するかどうかをデバッグして確認するための "印刷"行xx "結果は常に良好ですが、DBは更新されません。
*同じプログラムの別の機能では、同じDBからデータを読み込むため、DBを読み込むためのアクセス権があります。
def update_coin(new_data):
#data_coin is a 10 element list
id = new_data[0]
with con:
cur = con.cursor()
if new_data[3] is not None:
cur.execute("UPDATE COIN_KM SET KM_NUM =? WHERE ID_KM = ?", (new_data[3], id))
if new_data[4] is not None:
cur.execute("UPDATE COIN_KM SET ID_NUMIS =? WHERE ID_KM = ?", (new_data[4], id))
if new_data[5] is not None:
cur.execute("UPDATE COIN_KM SET DDATE =? WHERE ID_KM = ?", (new_data[5], id))
if new_data[7] is not None:
cur.execute("UPDATE COIN_KM SET TITLE =? WHERE ID_KM = ?", (new_data[7], id))
if new_data[8] is not None:
cur.execute("UPDATE COIN_KM SET DESCRIPTION =? WHERE ID_KM = ?", (new_data[8], id))
if new_data[10] is not None:
cur.execute("UPDATE COIN_KM SET MATERIAL =? WHERE ID_KM = ?", (new_data[10], id))
con.commit()
誰でもここで何が間違っているか把握できますか?以前私は同様のスクリプトを持っていたし、この問題はありませんでした。 *私はUbuntuでVMで作業していますが、私は自分のDBとスクリプトに777への権限を変更します。 * rootなどの端末でスクリプトを実行します。
'new_data'に値を与えることはできますか?私たちは同じプログラムを実行し、その動作を確認してください。実行可能なコードをすべて追加してください。 – Nilesh
@JohnSnow、あなたの輸入品を提供してください。 – lmiguelvargasf
'print len(con.execute( 'SELECT * FROM Coin_km WHERE ID_km =?'、(id、)).fetchall())'で示されているものは? –