2012-04-04 10 views
8

Używam Pythona 2.7 z MySQLdb 32bit, wraz z MySQL 5.5.8 działającym lokalnie.Python MySQL: Nie pokazuje wstawionych rekordów

Doprowadzam się do tego, że nigdy nie widziałem czegoś podobnego.

Zasadniczo jestem wstawiania rekordów do MySQL z Pythona poprzez:

db=MySQLdb.connect(host="localhost",user="root", passwd="mypassword",db="python",port=3307) 
cur=db.cursor() 
cur.execute("INSERT INTO mytable(myfield) VALUES(%s);","somedata") 

I sprawdzeniu, że jest prawidłowo podłączony i że może z powodzeniem SELECT dane z bazy danych.

Oto część nieparzysta: Z przeglądarki zapytań MySQL (narzędzie GUI) ORAZ z MySQL za pośrednictwem CMD, nie widzę wstawionych rekordów.

mogę wstawić i wybierz rekordy z mojego skryptu Pythona, ale nie pojawiają się w mojej bazy danych, to po prostu zwraca Empty Set (0.00 sec)

I tu jest naprawdę dziwne część: mogę obciąć i usunąć dane z GUI narzędzie i z konsoli.

Podsumowując: mogę wstawić i wybrać dane ze skryptu w języku Python. Nie widzę tych danych w MySQL. Jednak mogę skasować i usunąć te dane za pomocą MySQL.

Jestem całkowicie zagubiony w tym momencie.

Odpowiedz

18

Jeśli kod działa w konsoli, ale nie inaczej, wierzę, trzeba dodać linię

db.autocommit(True) 

Po podłączeniu lub trzeba zrobić db.commit() po swoich wkładek.

+0

Czy w tym przypadku metoda 'commit' nie jest włączona w' db'? – exhuma

+0

Masz całkowitą rację: @exhuma, mój błąd. –

+0

Żałuję, że nie mogłem znaleźć tego w przykładach w dokumentacji ... Dziękuję !!! Przyjmuję twoją odpowiedź w ok. 4 minuty! – MrZander

Powiązane problemy