Python连接MySQL

MySQLdb模块用于连接MySQL数据库。源码位于http://sourceforge.net/projects/mysql-python,其中还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。


7.1. 安装

安装的方法在解压目录的README文件中有详细说明。不难,这里就不详细讲了。要注意的一点是,如果你的mysql不是安装在默认的路径,而是安装在/usr/local/mysql这样的路径的话,libmysqlclient.so.12这个动态库python可能会找不到,造成import出错,解决方法是在/usr/lib下做一个符号连接,ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.12 libmysqlclient.so.12。最后在python中用import MySQLdb测试,如果没有出错信息就说明安装成功,可以连接mysql数据库了。


7.2. 模块功能

connect()方法用于连接数据库,返回一个数据库连接对象。如果要连接一个位于host.remote.com服务器上名为fourm的MySQL数据库,连接串可以这样写:

db = MySQLdb.connect(host="remote.com",user="user",passwd="xxx",db="fourm" )

connect()的参数列表如下:


host,连接的数据库服务器主机名,默认为本地主机(localhost)。


user,连接数据库的用户名,默认为当前用户。


passwd,连接密码,没有默认值。


db,连接的数据库名,没有默认值。


conv,将文字映射到Python类型的字典。默认为MySQLdb.converters.conversions


cursorclass,cursor()使用的种类,默认值为MySQLdb.cursors.Cursor。


compress,启用协议压缩功能。


named_pipe,在windows中,与一个命名管道相连接。


init_command,一旦连接建立,就为数据库服务器指定一条语句来运行。


read_default_file,使用指定的MySQL配置文件。


read_default_group,读取的默认组。


unix_socket,在unix中,连接使用的套接字,默认使用TCP。


port,指定数据库服务器的连接端口,默认是3306。


连接对象的db.close()方法可关闭数据库连接,并释放相关资源。


连接对象的db.cursor([cursorClass])方法返回一个指针对象,用于访问和操作数据库中的数据。


连接对象的db.begin()方法用于开始一个事务,如果数据库的AUTOCOMMIT已经开启就关闭它,直到事务调用commit()和rollback()结束。


连接对象的db.commit()和db.rollback()方法分别表示事务提交和回退。


指针对象的cursor.close()方法关闭指针并释放相关资源。


指针对象的cursor.execute(query[,parameters])方法执行数据库查询。


指针对象的cursor.fetchall()可取出指针结果集中的所有行,返回的结果集一个元组(tuples)。


指针对象的cursor.fetchmany([size=cursor.arraysize])从查询结果集中取出多行,我们可利用可选的参数指定取出的行数。


指针对象的cursor.fetchone()从查询结果集中返回下一行。


指针对象的cursor.arraysize属性指定由cursor.fetchmany()方法返回行的数目,影响fetchall()的性能,默认值为1。


指针对象的cursor.rowcount属性指出上次查询或更新所发生行数。-1表示还没开始查询或没有查询到数据。


7.3. 模块功能演示
#!/usr/bin/python
import MySQLdb
try:
   connection = MySQLdb.connect(user="user",passwd="password",host="xxx",db="test")
except:
   print "Could not connect to MySQL server."
   exit( 0 )
try:
   cursor = connection.cursor()
   cursor.execute( "SELECT note_id,note_detail FROM note where note_id = 1" )
   print "Rows selected:", cursor.rowcount
for row in cursor.fetchall():
       print "note : ", row[0], row[1]
   cursor.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值