Python使用MySQLdb for Python操作数据库教程
本文详细讲述了Python使用MySQLdb for Python操作数据库的方法,分享给大家供大家参考。具体如下: 一般来说网站就是要和数据库进行交互,否则什么都不用做了。今天我们就来分析一个叫MySQLdb的库,使用这个用来和MySQL数据库进行交互. 大家可以从这里获得这个库: http://sourceforge.net/projects/mysql-python 如果你不确定你的python环境里有没有这个库,那就打开python shell,输入 import MySQLdb,如果返回错误信息,那就表示你的机器上没有,赶紧去下载一个.我的机器是win xp,所以我下载了win环境下的exe那个,直接双击完成安装. 在介绍具体的操作前,我们先来说说一个程序怎么和数据库进行交互: 1.和数据库建立连接 使用MySQLdb也要遵循上面的几步.让我们一步步的进行. 一、引入MySQLdb库: 复制代码 代码如下: import MySQLdb
二、和数据库建立连接: 复制代码 代码如下: conn=MySQLdb.connect(host=”localhost”,user=”root”,passwd=”sa”,db=”mytable”) 提供的connect方法用来和数据库建立连接,接收数个参数,返回连接对象. 比较常用的参数包括: host:数据库主机名.默认是用本地主机. 更多关于参数的信息可以查这里: http://mysql-python.sourceforge.net/MySQLdb.html 然后,这个连接对象也提供了对事务操作的支持,标准的方法: commit() 提交 三、执行sql语句和接收返回值: 复制代码 代码如下: cursor=conn.cursor()
n=cursor.execute(sql,param) 首先,我们用使用连接对象获得一个cursor对象,接下来,我们会使用cursor提供的方法来进行工作.这些方法包括两大类:1.执行命令,2.接收返回值 cursor用来执行命令的方法: callproc(self,procname,args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数 cursor用来接收返回值的方法: fetchall(self):接收全部的返回结果行. 下面的代码是一个完整的例子: 复制代码 代码如下: #使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%s
sql=”insert into cdinfo values(%s,%s,%s)” #param应该为tuple或者list param=(title,singer,imgurl,url,alpha) #执行,如果成功,n的值为1 n=cursor.execute(sql,param) #再来执行一个查询的操作 #如果需要批量的插入数据,就这样做 需要注意的是(或者说是我感到奇怪的是),在执行完插入或删除或修改操作后,需要调用一下conn.commit()方法进行提交.这样,数据才会真正保存在数据库中.我不清楚是否是我的mysql设置问题,总之,今天我在一开始使用的时候,如果不用commit,那数据就不会保留在数据库中,但是,数据确实在数据库呆过.因为自动编号进行了累积,而且返回的受影响的行数并不为0. 四、关闭数据库连接: 需要分别的关闭指针对象和连接对象.他们有名字相同的方法: 复制代码 代码如下: cursor.close()
conn.close() 三步完成,基本的数据库操作就是这样了.下面是两个有用的连接: MySQLdb用户指南: http://mysql-python.sourceforge.net/MySQLdb.html 现在让我头痛的问题是字符的编码问题,在插入中文的时候,总会乱码.我尝试着改变编码,又会出现”Data too long for column “的错误。对此,大家可以参考前面一篇文章Python中MYSQLdb出现乱码的解决方法。 希望本文所述对大家的Python程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |