python MySQLdb的应用
今天想用python进行数据库的查询,由于我是做php的,本地装的是mysql数据库,于是我就采用mysql来进行是测试。Python的mysql模块的通过pip命令:
pip install MySQL-python
我本地通过这个命令,报了一堆的错误,大概是缺少什么环境。算了,还是寻找exe文件直接安装吧,我本地安装的是32位的python。我找的文件是这个MySQL-python-1.2.3.win32-py2.7.exe,直接安装下一步就行了。那么现在安装好了,进行查询
试试吧
1 # -*- coding: utf-8 -*-2 #mysqldb
3 import MySQLdb
4
5 #连接
6 conn = MySQLdb.connect(host="localhost",user="root",passwd="root",db="yiguan",charset="utf8")
7 cursor = conn.cursor()
8
9 fo = open('test.log', 'wb')
10 try:
11 #查询
12 cursor.execute("select * from yg_answer")
13 # 获取所有记录列表
14 results = cursor.fetchall()
15 print results
16 except:
17 print "Error: unable to fecth data"
18
19 #关闭
20 conn.close()
查询出的结果如下:
那么我们怎么把这个文件记录下来呢。最近简单的,通过写文件来记录吧。于是通过如下的代码写入:
1 # -*- coding: utf-8 -*-2 #mysqldb
3 import MySQLdb
4
5 #连接
6 conn = MySQLdb.connect(host="localhost",user="root",passwd="root",db="yiguan",charset="utf8")
7 cursor = conn.cursor()
8
9 fo = open('test.log', 'wb')
10 try:
11 #查询
12 cursor.execute("select * from yg_answer")
13 # 获取所有记录列表
14 results = cursor.fetchall()
15 #print results
16 for row in results:
17 fo.write( row[3] + ':' + row[4] + '\n' )
18 fo.close()
19 except:
20 print "Error: unable to fecth data"
21
22 #关闭
23 conn.close()
很遗憾,这样并不能写入文件中,会抛出错误Error: unable to fecth data,并不是这里错了,而是第17行写入的时候出错了。于是我在网上寻找啊,最终终于找到了解决的办法。
1 # -*- coding: utf-8 -*-2 #mysqldb
3 import MySQLdb
4 import sys
5
6 reload(sys)
7 sys.setdefaultencoding( "utf-8" )
8
9 #连接
10 conn = MySQLdb.connect(host="localhost",user="root",passwd="root",db="yiguan",charset="utf8")
11 cursor = conn.cursor()
12
13 fo = open('test.log', 'wb')
14 try:
15 #查询
16 cursor.execute("select * from yg_answer")
17 # 获取所有记录列表
18 results = cursor.fetchall()
19 #print results
20 for row in results:
21 fo.write( row[3] + ':' + row[4] + '\n' )
22 fo.close()
23 except:
24 print "Error: unable to fecth data"
25
26 #关闭
27 conn.close()
导入sys模块,设置默认的编码,这样就能解决问题了。具体的为什么可以解决这个问题,你可以通过百度 sys.setdefaultencoding 了解详细的信息
以上是 python MySQLdb的应用 的全部内容, 来源链接: utcz.com/z/386760.html