#!/usr/bin/python
#Program:
#   insert data into mysql and the display them
import MySQLdb as mdb

conn = mdb.connect(host = 'localhost', user = 'root', passwd = '8023xue0526', db ='contact')

cur = conn.cursor()
cur.execute("insert into contact values('123221', 'ni')")
cur.execute("select * from contact")
row_num = int(cur.rowcount)
for i in range(row_num):
    row = cur.fetchone()
    print row


我使用这些代码将数据插入mysql,程序正常工作。但是在那之后,我在mysqlclient中检查它,数据不存在。
   但是,当我在'cur = conn.cursor()之前添加一条语句'with conn:'时,数据确实会插入mysql中。像这样的代码

#!/usr/bin/python
#Program:
#   to get some information from mysql
import MySQLdb as mdb
import sys

conn = mdb.connect(host = 'localhost', user = 'root', passwd = '8023xue0526', db =         'contact')

with conn:
    cur = conn.cursor()
    cur.execute("insert into contact values('122221', 'ni')")
    cur.execute("select * from contact")
    row_num = int(cur.rowcount)
    for i in range(row_num):
        row = cur.fetchone()
        print row

最佳答案

with conn:(使用连接对象作为上下文管理器)可确保在with语句所控制的代码块内没有发生异常的情况下提交事务。

如果没有上下文管理器,请使用conn.commit()显式提交事务。

关于python - 我使用python mysql API将数据插入到mysql中,但是当我没有添加语句'with conn'时,它不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17920019/

10-14 05:21