3

これは、stackoverflow に関する私の最初の質問です! 私は現在、Steam プロファイルをクロールし、所有しているゲーム、Steam 名、友達などを保存する Steam コミュニティ クローラーをプログラミングしていますが、insert コマンドを実行しようとしても何もしません。

 if not self.check_user('games', id):
  print "insert"
  self.cursor.execute("INSERT INTO games (userid) VALUES(%s);" % id)

プログラムは「挿入」を表示しますが、実行コマンドは例外をスローせず、データベースに何かを挿入しません。さらに、最終的に発生する例外はキャッチされません。たとえば、クエリを「INSERT INTO games (useridd)」に変更すると、プログラムが終了し、例外が表示されます。

アプリケーションはマルチスレッドですが、実行前に取得されるため、問題は見られません。

4

2 に答える 2

6
  1. コマンドの最後に「COMMIT」を追加します

    例えば:

    cursor.execute("INSERT INTO games (userid) VALUES(%s);COMMIT;" % id)
    
  2. 2行目を追加して自動コミットを設定します

    db = MySQLdb.connect(user='username', db=dbName,) # exmaple
    db.autocommit(1) # enable auto commit
    
  3. トランザクションの後にcommit()を追加します

    db.commit()
    
于 2011-08-09T13:01:53.347 に答える
5

トランザクションをコミットするのを忘れました。

于 2011-07-17T20:28:56.547 に答える