python mysqldb_python MySQLdb API手册

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

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

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

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

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

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

Connection类

该类的参考文档可参考:

通过关键字参数来构造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

1

2

3

4

5

6

7

8

9

importMySQLdbasmdb

try:

conn=mdb.Connection(host='127.0.0.1',user='root',passwd='******',db='test',charset='utf8')

exceptException,e:

printe

finally:

ifvars().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()

1

2

3

4

5

importMySQLdbasmdb

conn=mdb.Connection(host='127.0.0.1',user='root',passwd='******',db='test',charset='utf8')

withconn:

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

1

2

3

4

5

6

importMySQLdbasmdb

conn=mdb.Connection(host='127.0.0.1',user='root',passwd='******',db='test',charset='utf8')

withconn:

conn.query('select * from Books')

printconn.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()

1

2

3

4

5

6

7

importMySQLdbasmdb

conn=mdb.Connection(host='127.0.0.1',user='root',passwd='******',db='test',charset='utf8')

withconnascursor:

cursor.execute('select * from Books')

foriinrange(cursor.rowcount):

printcursor.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',))

1

2

3

4

5

6

importMySQLdbasmdb

conn=mdb.Connection(host='127.0.0.1',user='root',passwd='******',db='test',charset='utf8')

withconnascursor:

cursor.execute('INSERT INTO Books set Name = "%s"'%('book1',))

cursor.execute('INSERT INTO Books set Name = %s'%('book2',))

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值