python MySQLdb API手册

python访问MySQL server,可以使用 _mysql模块, 也可使用进一步封装过的MySQLdb包。

若使用MySQLdb,则需要单独安装。

今天发现MySQLdb的API手册居然被墙了… …

它的原始链接是: http://mysql-python.sourceforge.net/MySQLdb-1.2.2/

我把这个手册下载并上传到自己的博客上,供需要的朋友参考。

http://www.lijiejie.com/python/MySQLdb/

 

MySQLdb包是遵循Python DB API 2.0规范开发的,它的用法可以参阅:

http://www.python.org/dev/peps/pep-0249/

MySQLdb中常用的类有Connection(首字母大写)和Cursors

Connection类

该类的参考文档可参考:

http://www.lijiejie.com/python/MySQLdb/private/MySQLdb.connections.Connection-class.html

通过关键字参数来构造Connection对象,举个例子:

import MySQLdb as mdb

try:
conn = mdb.Connection(host = '127.0.0.1', user = 'root', passwd = '******', db = 'test', charset='utf8')
except Exception, e:
print e
finally:
if vars().has_key('conn'):
conn.close

Connection类包括__enter__和__exit__方法,可以直接使用with语句,其实并不需要上述try/except/finally语句。

请看下面的例子:

import MySQLdb as mdb

conn = mdb.Connection(host = '127.0.0.1', user = 'root', passwd = '******', db = 'test', charset='utf8')
with conn:
print 'client:', conn.get_host_info()

Connection对象可以进行SQL查询,但文档中也指出,这是非标准的做法,并不推荐使用的:

import MySQLdb as mdb

conn = mdb.Connection(host = '127.0.0.1', user = 'root', passwd = '******', db = 'test', charset='utf8')
with conn:
conn.query('select * from Books')
print conn.use_result().fetch_row(10) #max row number = 10

因为__enter__方法返回的是cursor对象,可以使用这个cursor对象进行SQL查询,举例查询Book表中的所有行:

import MySQLdb as mdb

conn = mdb.Connection(host = '127.0.0.1', user = 'root', passwd = '******', db = 'test', charset='utf8')
with conn as cursor:
cursor.execute('select * from Books')
for i in range(cursor.rowcount):
print cursor.fetchone()

另外,Connection对象的__enter__和__exit__之间,默认是一个事务(transaction),

只有当所有的SQL语句执行成功,才会commit,否则,会rollback

请看例子:

import MySQLdb as mdb

conn = mdb.Connection(host = '127.0.0.1', user = 'root', passwd = '******', db = 'test', charset='utf8')
with conn as cursor:
cursor.execute('INSERT INTO Books set Name = "%s"' % ('book1',))
cursor.execute('INSERT INTO Books set Name = %s' % ('book2',))

上面,第一条插入语句是正确的,第二条插入语句有误,没有加引号。

最终的运行结果,是一条记录都没有插入。

《python MySQLdb API手册》上有4条评论

  1. 大表哥你好,你的博客很漂亮,促使我也想做个自己的博客了,能否写一篇关于你博客制作,优化的文章。我的连接:www.kmx26.com

发表评论

您的电子邮箱地址不会被公开。