Python MySQL: ไม่แสดงบันทึกที่แทรก [ซ้ำกัน]

ฉันใช้ Python 2.7 กับ MySQLdb 32 บิต ควบคู่ไปกับ MySQL 5.5.8 ที่ทำงานอยู่ในเครื่อง

ฉันทำให้ตัวเองคลั่งไคล้สิ่งนี้ ฉันไม่เคยเห็นอะไรแบบนี้มาก่อน

โดยพื้นฐานแล้ว ฉันกำลังแทรกบันทึกลงใน MySQL จาก Python ผ่าน:

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

ฉันได้ตรวจสอบแล้วว่าเชื่อมต่ออย่างถูกต้องและสามารถ SELECT ข้อมูลจากฐานข้อมูลได้สำเร็จ

นี่คือส่วนที่แปลก: จาก MySQL Query Browser (เครื่องมือ GUI) และจาก MySQL ผ่าน CMD ฉันไม่สามารถดูบันทึกที่แทรกไว้ได้

ฉันสามารถแทรกและเลือกบันทึกจากสคริปต์ Python ของฉันได้ แต่บันทึกเหล่านั้นไม่แสดงในฐานข้อมูลของฉัน มันแค่ส่งคืน Empty Set (0.00 sec)

และนี่คือส่วนที่แปลกจริงๆ: ฉันสามารถตัดและลบข้อมูลจากเครื่องมือ GUI และจากคอนโซลได้

สรุป: ฉันสามารถแทรกและเลือกข้อมูลจากสคริปต์ Python ได้ ฉันไม่เห็นข้อมูลนั้นใน MySQL อย่างไรก็ตาม ฉันสามารถตัดทอนและลบข้อมูลนั้นโดยใช้ MySQL ได้

ฉันหลงทางไปหมดแล้ว ณ จุดนี้


person MrZander    schedule 04.04.2012    source แหล่งที่มา


คำตอบ (1)


หากโค้ดของคุณใช้งานได้บนคอนโซลแต่ใช้ไม่ได้อย่างอื่น ฉันเชื่อว่าคุณต้องเพิ่มบรรทัด

db.autocommit(True)

หลังจากที่คุณเชื่อมต่อหรือคุณต้องทำ db.commit() หลังจากการแทรกของคุณ

person Nolen Royalty    schedule 04.04.2012
comment
ในกรณีนี้ commit ไม่ได้อยู่ใน db หรือไม่ - person exhuma; 04.04.2012
comment
คุณพูดถูก @exhuma ความผิดพลาดของฉัน - person Nolen Royalty; 04.04.2012
comment
ฉันหวังว่าฉันจะพบว่าในตัวอย่างในเอกสารประกอบ... ขอบคุณ!!! ฉันจะยอมรับคำตอบของคุณภายในเวลาประมาณ 4 นาที! - person MrZander; 04.04.2012