`
lijunjie
  • 浏览: 388505 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
  前两天,用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)
        

0
0
分享到:
评论

相关推荐

    MySQLdb对mysql数据库的中文操作测试

    NULL 博文链接:https://lijunjie.iteye.com/blog/445713

    python操作mysql数据库.pdf

    Python 操作 MySQL 数据库 Python 操作 MySQL 数据库是通过 Python DB-API 实现的,Python DB-API 为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,可以选择适合项目的数据库,如 ...

    MySQL 数据库创建(Python 代码)

    用 Python 和 MySQLdb 创建 MySQL 数据库,可以根据自己的需要再添加字段和按需赋值。

    python操作MySQL的MySQLdb模块

    Python中的MySQLdb模块是连接和操作...文档"python操作数据库.doc"应该详细介绍了如何使用这个模块,而"windows"文件可能是与Windows平台相关的安装指南或FAQ。通过学习和实践,你可以熟练掌握Python操作MySQL的技能。

    Python的MySQL数据库操作-修改版

    本节资源主要讲解了使用Python语言对MySQL数据库进行操作的过程,涵盖了建立数据库连接、执行SQL语句、插入数据、查询数据、关闭数据库连接等基本操作。 首先,需要引入 MySQLdb 模块,以便与 MySQL 数据库进行交互...

    php实现MySQL数据库操作类.zip

    本篇文章将深入探讨如何使用PHP实现一个MySQL数据库操作类,包括连接、查询、插入、更新和删除数据等核心功能。 首先,我们需要创建一个名为`MySQLDB`的类,该类将封装所有的数据库交互逻辑。以下是一个基本的类...

    Python 操作 MySQL 数据库.docx

    2. 创建数据库连接:`db = MySQLdb.connect(host="localhost", user="testuser", passwd="test123", db="TESTDB", charset='utf8')` 在这里,你需要提供数据库服务器的主机名、用户名、密码、数据库名以及字符集。 ...

    python使用mysql数据库时需要安装的开源mysql连接工具,64位的

    MySQLdb是Python的MySQL Connector,它基于JDBC(Java Database Connectivity)的MySQL驱动,实现了Python的DB-API(Python Database API),使得Python可以像操作其他数据库一样操作MySQL。DB-API是一个标准的API,...

    Python3实现的Mysql数据库操作封装类

    本文实例讲述了Python3实现的Mysql数据库操作封装类。分享给大家供大家参考,具体如下: #encoding:utf-8 #name:mod_db.py ''''' 使用方法:1.在主程序中先实例化DB Mysql数据库操作类。 2.使用方法:db=database()...

    完整的php操作MySQL数据库类.zip

    在PHP编程中,操作MySQL数据库是一项基础且重要的任务。这个"完整的php操作MySQL数据库类"提供了一种结构化的、封装好的方式来实现这一目标。它将常见的数据库操作,如连接、查询、插入、更新和删除等,封装成了一...

    使用Python连接和操作MySQL数据库工具包资-PyMySQL源代码

    (5)Python代码操作数据库 1. 引入模块MySQLdb:import MySQLdb 2. 连接到数据库和建立游标:经过MySQL数据库的连接,还有游标的建立,才能够对数据库进行操作。代码如下: #connect to database. conn=MySQLdb....

    Python MySQLdb模块连接操作mysql数据库实例

    Python中的MySQLdb模块是Python连接MySQL数据库的一个标准库,它为Python程序员提供了与MySQL服务器交互的能力。MySQLdb遵循Python的DB-API(数据库应用编程接口)规范,使得在不同数据库之间切换变得较为简单,因为...

    flask框架配置mysql数据库操作详解

    这样,Flask应用就与MySQL数据库建立了连接,并创建了一个名为`db`的SQLAlchemy实例,可以用来操作数据库。 在`app/models.py`文件中,定义数据模型。例如,我们创建`User`和`Admin`两个模型: ```python from app...

    Python连接Mysql数据库1

    在连接 Mysql 数据库之前,需要安装 MySQLdb, MySQLdb 是用于 Python 链接 Mysql 数据库的接口。有两种安装方法:一是使用 pip 进行安装,输入命令 pip install MYSQL-python ;二是从 ...

    python操作mysql数据库-精品管理资料.pdf

    Python DB-API,全称为Python Database API Specification v2.0,是...总的来说,Python DB-API和MySQLdb提供了一个强大的工具集,使得Python开发者能够方便地在Web应用程序和其他互联网项目中集成和管理MySQL数据库。

    python操作mysql数据库归类.pdf

    这个API定义了一系列必须的对象和操作方式,使得不同数据库的底层实现对开发者透明,从而简化了数据库操作。Python DB-API支持众多数据库,如GadFly、mSQL、MySQL、PostgreSQL、Microsoft SQL Server 2000、Informix...

Global site tag (gtag.js) - Google Analytics