MySQLデータベースにデータを読み書きするPython用MySQLdbモジュール(Windows Python 2.7用のv1.2.3プリコンパイル済みバイナリ) 。一度接続が開かれると、その接続を使用して、同じ接続でデータベースに加えられた変更を観察できますが、別の接続がPythonで行われたか、 MySQLコマンドラインクライアント。私がPythonを使用して更新を行っている場合は、接続上でcommit()コマンドを実行していることに注意してください。 1つのVARCHAR列でテストテーブルに新しいレコードを挿入し、プログラムの変更がコミットされた後でも、MySQL-python接続で別の接続で行われたデータベースへの変更が表示されない
例:一定のレコード数を印刷し終わるプログラムの
import MySQLdb
conn = MySQLdb.connect("localhost", "test", "test", "test")
c = conn.cursor()
c.execute("INSERT INTO test VALUES(%s)", ("Test",))
conn.commit()
c.close()
conn.close()
例(代わりに最新のレコードを印刷しますカウント)。私は、スクリプトを強制終了して再実行するか、またはSELECT
ステートメントを実行するたびに新しい接続を開くことによって、カウントを更新することができました。
import MySQLdb
conn = MySQLdb.connect("localhost", "test", "test", "test")
while True:
input = raw_input("Enter anything: ")
if input == "exit":
break
c = conn.cursor()
c.execute("SELECT COUNT(*) FROM test")
res = c.fetchone()[0]
c.close()
print("Number of records: %d" % res)
'deprecationWarning:begin()は標準ではなく、1.3で削除されます。 ' –
' conn.begin() 'にコメントし、' conn.commit() 'のコメントを外します。それも動作します。 – Nilesh