设为首页 收藏本站
查看: 432|回复: 0

[经验分享] MySQLdb对mysql数据库的中文操作测试补充(包括字符集gbk,utf8,latin1)

[复制链接]

尚未签到

发表于 2016-10-24 05:48:57 | 显示全部楼层 |阅读模式
前两天,用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)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-290346-1-1.html 上篇帖子: LNMP 最新版本+YUM方式安装指南(CentOS5.5 + Nginx 1.0.x + MySQL 5.5.x + PHP 5.3.x) 下篇帖子: 在tomcat中配置mysql数据库连接池的方法及第三方对数据库的封装:dbutils
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表