2012-04-04 31 views
8

Tôi đang sử dụng Python 2.7 với MySQLdb 32bit, cùng với MySQL 5.5.8 chạy cục bộ.Python MySQL: Không hiển thị các bản ghi được chèn

Tôi đang lái xe bản thân mình điên cuồng về điều này, tôi chưa bao giờ thấy bất cứ điều gì như nó.

Về cơ bản, tôi chèn hồ sơ vào MySQL từ Python qua:

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") 

Tôi đã xác minh rằng nó được kết nối đúng và rằng nó có thể thành công SELECT dữ liệu từ cơ sở dữ liệu.

Đây là phần lẻ: Từ Trình duyệt truy vấn MySQL (công cụ GUI) VÀ từ MySQL qua CMD, tôi không thể xem bản ghi được chèn.

tôi có thể chèn và chọn hồ sơ từ Python Script của tôi, nhưng họ không xuất hiện trong cơ sở dữ liệu của tôi, nó chỉ trả về Empty Set (0.00 sec)

Và đây là phần thực sự kỳ lạ: Tôi có thể cắt ngắn và xóa dữ liệu từ GUI và từ Console.

Tóm lại: Tôi có thể chèn và chọn dữ liệu từ Tập lệnh Python. Tôi không thể thấy dữ liệu đó trong MySQL. Tuy nhiên, tôi có thể cắt ngắn và xóa dữ liệu đó bằng cách sử dụng MySQL.

Tôi hoàn toàn bị mất vào thời điểm này.

Trả lời

18

Nếu mã của bạn hoạt động trong giao diện điều khiển nhưng không phải bằng cách khác, tôi tin rằng bạn cần phải thêm dòng

db.autocommit(True) 

Sau khi bạn kết nối hoặc bạn cần làm db.commit() sau khi chèn bạn.

+0

Phương thức 'commit' không nằm trong' db' trong trường hợp này? – exhuma

+0

Bạn hoàn toàn đúng @exhuma, sai lầm của tôi. –

+0

Tôi ước gì tôi có thể thấy rằng trong các ví dụ trong tài liệu ... Cảm ơn bạn !!! Tôi sẽ chấp nhận câu trả lời của bạn trong khoảng. 4 phút! – MrZander

Các vấn đề liên quan