2007年的最后一天
2007-12-31 11:18
357 查看
前两天,用MySQLdb对mysql进行过中文测试,但是当时只是测试的字符集为gbk,和utf8的表.没有完成字符集latin1的测试。不过latin1可能才是我们遇到问题最多的。
最近正好使用到了,所以进行了一些测试。这样以后可以使用类似代码直接使用了。没有
最近正好使用到了,所以进行了一些测试。这样以后可以使用类似代码直接使用了。没有
#!/usr/bin/env python #coding:utf-8 """ 测试python对mysql数据库的支持 1.增删改查中文操作 CREATE TABLE `zhanbulatin1` ( `id` int(11) NOT NULL, `content` char(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE `zhanbuutf8` ( `id` int(11) NOT NULL, `content` char(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 """ import MySQLdb class processdb: def connection(self,user="root",password="123456",host="127.0.0.1",db="test",character="utf-8"): self.user=user self.password=password self.host=host self.db=db self.character=db conn=MySQLdb.connect(host=self.host,user=self.user,passwd=self.password,db=self.db,charset=self.character) c=self.conn.cursor() return c,conn def connectionlatin1(self): self.conn=MySQLdb.connect(host=self.host,user=self.user,passwd=self.password,db=self.db) self.c=self.conn.cursor() def connection(self): self.conn=MySQLdb.connect(host=self.host,user=self.user,passwd=self.password,db=self.db,charset=self.character) self.c=self.conn.cursor() def add(self,sql): print "#"*15,"add","#"*15 self.c.execute(sql) def delrecord(self,sql): print "#"*15,"del","#"*15 self.c.execute(sql) def update(self,sql): print "#"*15,"update","#"*15 self.c.execute(sql) def querylatin1(self,sql): print "*"*40 self.c.execute(sql) rs=self.c.fetchall() for i in rs: self.printList(i) return rs def printList(self,list): for i in list: try: if " " in i: pass else: print unicode(i,"gbk") except: print i def query(self,sql): print "*"*40 self.c.execute(sql) rs=self.c.fetchall() for i in rs: print i[1] return rs db1=processdb() db1.user="root" db1.password="1q2w3e4r" db1.host="127.0.0.1" db1.db="mysite2" db1.character="utf8" db1.connection() table1="zhanbuutf8" def createsql(tablename): content="中文插入" updatecontent="更新中文" id=1 addsql="insert into %s(id,content) values(%d,'%s')"%(tablename,id,content) updatesql="update %s set content='%s' where id=%d"%(tablename,updatecontent,id) delsql="delete from %s where id=%d"%(tablename,id) querysql="select id,content from %s order by id desc"%(tablename) return addsql,updatesql,delsql,querysql def createsqllatin1(tablename): content=unicode("中文插入","latin1") updatecontent=unicode("更新中文","latin1") id=1 addsql="insert into %s(id,content) values(%d,'%s')"%(tablename,id,content) updatesql="update %s set content='%s' where id=%d"%(tablename,updatecontent,id) delsql="delete from %s where id=%d"%(tablename,id) querysql="select id,content from %s order by id desc"%(tablename) return addsql,updatesql,delsql,querysql """ 1.测试表字符集为utf8,或者gbk时的中文插入删除,更新情况 """ addsql,updatesql,delsql,querysql=createsql(table1) db1.delrecord(delsql) db1.add(addsql) db1.query(querysql) db1.update(updatesql) db1.query(querysql) db1.delrecord(delsql) db1.query(querysql) db1.conn.close() """ 1.测试表字符集为latin1时的中文插入删除情况 """ db1.connectionlatin1() table2="zhanbulatin1" addsql,updatesql,delsql,querysql=createsqllatin1(table2) db1.delrecord(delsql) db1.add(addsql) db1.querylatin1(querysql) db1.update(updatesql) db1.querylatin1(querysql) db1.delrecord(delsql)
相关文章推荐
- 2007年最后一天
- 2007年最后一天测试文章
- 2007年最后的一天
- 2007年最后一天
- 2007年的最后一天
- 2007年的最后一天,最后一个小时。
- Linux 根据当前日期获取上个月的第一天和最后一天
- Oracle之第一天和最后一天
- 新年来临最后一天听到了职业培训新的声音
- SQL获取每月最后一天记录
- iOS之获取定月的第一天和最后一天
- T-SQL:三个通用的与日期相关的,辅助按周(星期日是周的最后一天)汇总的自定义函数
- 获得本月的第一天和最后一天
- SAP 中如何取得当月的第一天和最后一天的日期值?
- OSChina 周四乱弹 —— 最后一天
- 2015的最后一天
- java获取指定日期所在周的第一天和最后一天
- SQL语句,取日期最后一天
- JAVA calender 的使用实现查询一个月的第1天和最后一天,学的是技巧。
- 10 Java种如何获取某个日期是当月的最后一天