python - 我使用 python mysql API 将数据插入 mysql 但当我没有添加语句 'with conn:' 时它不起作用

标签 python mysql

#!/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/

相关文章:

java - SQLException : Operation not allowed after ResultSet closed

mysql - 用大型 SQL 数据库填充 CoreData

mysql - DESCRIBE 语法可以嵌入到 SELECT 语句中吗?

python - 从 CSV 文件读取时对数组的数值运算

python - 使用 python 多处理动态创建共享数组列表

python - 使用 Python 从行列表中提取列

php - 网站表单验证

python - 转换数据帧值

python - 如何在pkg_resources中实现resource_filename?

mysql命令不执行mysql