前两天,用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)
分享到:
相关推荐
NULL 博文链接:https://lijunjie.iteye.com/blog/445713
用 Python 和 MySQLdb 创建 MySQL 数据库,可以根据自己的需要再添加字段和按需赋值。
本文实例讲述了Python3实现的Mysql数据库操作封装类。分享给大家供大家参考,具体如下: #encoding:utf-8 #name:mod_db.py ''''' 使用方法:1.在主程序中先实例化DB Mysql数据库操作类。 2.使用方法:db=database()...
主要介绍了python使用MySQLdb访问mysql数据库的方法,实例分析了Python使用MySQLdb模块操作mysql数据库的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
(5)Python代码操作数据库 1. 引入模块MySQLdb:import MySQLdb 2. 连接到数据库和建立游标:经过MySQL数据库的连接,还有游标的建立,才能够对数据库进行操作。代码如下: #connect to database. conn=MySQLdb....
主要介绍了Python MySQLdb模块连接操作mysql数据库实例,本文直接给出操作mysql代码实例,包含创建表、插入数据、插入多条数据、查询数据等内容,需要的朋友可以参考下
通过 MySQLdb 和 Python 代码来实现 MySQL 数据库的一些基本操作。
在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,...# -*- coding: UTF-8 -*- #安装 MYSQL DB for python import MySQLdb as mdb con = None try: #连接 mysql 的方法: connect('ip','user'
通过 MySQLdb 和 Python 代码来实现 MySQL 数据库的一些基本操作。
Python操作数据库及Python实现mysql数据库连接池源代码。python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问...
包含python2.6操纵MySQL的安装文档和windows下的安装包。
#mysqldb import time, MySQLdb #连接 conn=MySQLdb.connect(host=”localhost”,user=”root”,passwd=””,db=”test”,charset=”utf8″) cursor = conn.cursor() #写入 sql = “insert into user(name,...
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
本文从基础入手来帮助大家打开MySQL数据库之门,介绍了用MySQL创建数据库和数据库表的步骤。
全国各省、市、县、镇、村数据库,详细到村的数据 数据来源于http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2013/index.html CSDN说明:http://blog.csdn.net/datedateup/article/details/77163266 CSDN下载:...
python2.6-MySQLdb,包括python2.6安装包、MySQLdb for python2.6安装包、MySQLdb使用配置,为想学习Python操作mysql数据库的同学提供了极大的方便。。。
MySQL数据库1 这是MySQLdb的旧版(1.x)版本。 尽管仍在维护中,但不会进行很多新功能开发。去做错误修正1.2.4版本1.3.0版本将支持Python 2.7-3.3 2.0版本已被重命名为版本,并进行了大量重构。专案 这是位于...