`
lijunjie
  • 浏览: 392366 次
  • 性别: 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数据库问题.docx

    - `charset`:字符集,默认为 `gb2312`,也可以设置为 `utf8` 等其他编码。 4. **创建游标对象** - 通过 `db.cursor()` 创建一个游标对象。游标允许你在 Python 中执行 SQL 语句,并获取结果。 5. **执行 SQL ...

    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 数据库介绍.docx

    ### Python 操作 MySQL 数据库详解 #### 一、Python DB-API 概述 Python DB-API(Database Application Programming Interface)是Python官方制定的标准数据库接口。它为开发者提供了统一的数据库访问方式,使得...

    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()...

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

    本文将详细介绍如何使用Python语言操作MySQL数据库,包括连接数据库、执行SQL语句、插入和查询数据以及关闭数据库连接等基本操作。 首先,要使用Python与MySQL数据库进行交互,需要安装并使用MySQLdb模块,这是一个...

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

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

    python操作mysql数据库.docx

    ### Python操作MySQL数据库知识点解析 #### 一、引言 Python是一种广泛使用的高级编程语言,以其简洁和强大的功能受到开发者的喜爱。在处理数据库方面,Python同样表现出色。本文将详细介绍如何使用Python中的`...

    使用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(数据库应用编程接口)规范,使得在不同数据库之间切换变得较为简单,因为...

Global site tag (gtag.js) - Google Analytics