1

为了防止连接在服务器上保持打开状态 - 这是我目前正在做的关闭 mysqldb 的游标和连接的操作,然后我重新引发错误:

import MySQLdb

conn = MySQLdb.connect(user="username", passwd="secret", db="database", charset='utf8')
cur = conn.cursor()

try:
    cur.execute("INSERT INTO testTable (userid) VALUES(%s);" % id)
    conn.commit()
except:
    cur.close()
    conn.close()
    raise
finally:
    print "Insert Successful"

有一个更好的方法吗?

注意:我知道 WITH 关键字可能会更好,但我没有找到任何说明 mysqldb 支持 WITH 关键字自动关闭连接的文档。

4

1 回答 1

1

看看这个教程

引用:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb as mdb

con = mdb.connect('localhost', 'testuser', 'test623', 'testdb');

with con:

    cur = con.cursor()
    cur.execute("DROP TABLE IF EXISTS Writers")
    cur.execute("CREATE TABLE Writers(Id INT PRIMARY KEY AUTO_INCREMENT, \
             Name VARCHAR(25))")
    cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
    cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")
    cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")
    cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")
    cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")
    ...
于 2013-10-07T01:30:37.873 回答