2

Python と MySQLdb を使用してデータベースに行を追加しています。私のスクリプトが終了すると、行が削除されるようです。スクリプトが終了する前の最後の行は、テーブルで「select *」を実行します。これにより、1 行が表示されます。スクリプトを再実行すると、最初の行 (接続を開いた後) で同じ "select *" が実行され、ゼロの結果が返されます。私はここで本当に途方に暮れています。私はこれに約 2 時間取り組んできましたが、何が私のデータベースにアクセスしているのか理解できません。

また、スクリプトを実行する間に、「select *」を端末から手動で実行し、結果はゼロです。

端末から手動で行を追加すると、それが続くようです。

行を挿入するクエリ:

cursor.execute("INSERT INTO sessions(username, id, ip) VALUES (%s, %s, %s)", (username, SessionID, IP]))

データを確認するために使用するクエリ:

cursor.execute("select * from sessions")
print cursor.fetchall()

これは、プログラムが終了する前に行を表示し、プログラムが再度実行されると何も表示しません。

すべての助けを前もって感謝します。

4

2 に答える 2

5

connection.commit()クエリを実行した後に変更する必要があるようです( connectionDB 接続変数に置き換えます)。

http://docs.python.org/library/sqlite3.html

Connection.commit() : このメソッドは、現在のトランザクションをコミットします。このメソッドを呼び出さない場合、 commit() への最後の呼び出し以降に行ったことは、他のデータベース接続からは見えません。データベースに書き込んだデータが表示されない理由が気になる場合は、このメソッドを呼び出すのを忘れていないかどうかを確認してください。

于 2012-08-02T21:03:33.573 に答える
0

この他の質問を確認してください: Python MySQLdb update query fails

コミット方法、自動コミットを使用した接続方法などの例をいくつか見つけることができます。

于 2012-08-02T21:05:52.590 に答える