4

次のように、MySQLdb executemany コマンドを使用してテーブル (test_copy) にデータを追加しようとしています。

db = mdb.connect(host="127.0.0.1",port=3306,user='XXXX',db="test")
cursor = db.cursor()
COM = "insert into test_copy (Short_Model) VALUES (%s)"
VALS = ['213','3232','fd','sadad']
cursor.executemany(COM,VALS)
cursor.close

注: テーブルの名前 = test_copy、列名 = Short_Model

問題は、コマンドがエラーなしで実行されることですが、テーブルを確認してもデータが追加されていません。

これが簡単な問題である場合は申し訳ありませんが、ここ数時間は私を夢中にさせています。

ありがとう。

4

3 に答える 3

5

@JonClementsと@AbhishekMishraに感謝します-あなたは私の正気を取り戻しました。興味のある人のための最終的な解決策は次のとおりです。

db = mdb.connect(host="127.0.0.1",port=3306,user='xxxx',db="test")
cursor = db.cursor()
COM = "insert into test_copy (Short_Model) VALUES (%s)"
VALS = ['213','3232','fd','sadad']
cursor.executemany(COM,VALS)
db.commit()
于 2012-10-09T15:11:12.503 に答える
2

cursor.closeである必要がありますが、通常は、変更が DB に反映されていることを確認しcursor.close()たいだけです。cursor.commit()

于 2012-10-09T15:02:13.703 に答える
1

commit()db でファイナライズするには呼び出しが必要です。executemanyドキュメントは、変更を自動的にコミットするかどうかを明確にしません。また、自動コミットをオンにcursor.autocommit(True)すると役立つ場合があります。

于 2012-10-09T15:05:26.110 に答える