前两天,用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 操作 MySQL 数据库 Python 操作 MySQL 数据库是通过 Python DB-API 实现的,Python DB-API 为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,可以选择适合项目的数据库,如 ...
用 Python 和 MySQLdb 创建 MySQL 数据库,可以根据自己的需要再添加字段和按需赋值。
Python中的MySQLdb模块是连接和操作...文档"python操作数据库.doc"应该详细介绍了如何使用这个模块,而"windows"文件可能是与Windows平台相关的安装指南或FAQ。通过学习和实践,你可以熟练掌握Python操作MySQL的技能。
- `charset`:字符集,默认为 `gb2312`,也可以设置为 `utf8` 等其他编码。 4. **创建游标对象** - 通过 `db.cursor()` 创建一个游标对象。游标允许你在 Python 中执行 SQL 语句,并获取结果。 5. **执行 SQL ...
本篇文章将深入探讨如何使用PHP实现一个MySQL数据库操作类,包括连接、查询、插入、更新和删除数据等核心功能。 首先,我们需要创建一个名为`MySQLDB`的类,该类将封装所有的数据库交互逻辑。以下是一个基本的类...
2. 创建数据库连接:`db = MySQLdb.connect(host="localhost", user="testuser", passwd="test123", db="TESTDB", charset='utf8')` 在这里,你需要提供数据库服务器的主机名、用户名、密码、数据库名以及字符集。 ...
### Python 操作 MySQL 数据库详解 #### 一、Python DB-API 概述 Python DB-API(Database Application Programming Interface)是Python官方制定的标准数据库接口。它为开发者提供了统一的数据库访问方式,使得...
MySQLdb是Python的MySQL Connector,它基于JDBC(Java Database Connectivity)的MySQL驱动,实现了Python的DB-API(Python Database API),使得Python可以像操作其他数据库一样操作MySQL。DB-API是一个标准的API,...
本文实例讲述了Python3实现的Mysql数据库操作封装类。分享给大家供大家参考,具体如下: #encoding:utf-8 #name:mod_db.py ''''' 使用方法:1.在主程序中先实例化DB Mysql数据库操作类。 2.使用方法:db=database()...
本文将详细介绍如何使用Python语言操作MySQL数据库,包括连接数据库、执行SQL语句、插入和查询数据以及关闭数据库连接等基本操作。 首先,要使用Python与MySQL数据库进行交互,需要安装并使用MySQLdb模块,这是一个...
在PHP编程中,操作MySQL数据库是一项基础且重要的任务。这个"完整的php操作MySQL数据库类"提供了一种结构化的、封装好的方式来实现这一目标。它将常见的数据库操作,如连接、查询、插入、更新和删除等,封装成了一...
### Python操作MySQL数据库知识点解析 #### 一、引言 Python是一种广泛使用的高级编程语言,以其简洁和强大的功能受到开发者的喜爱。在处理数据库方面,Python同样表现出色。本文将详细介绍如何使用Python中的`...
(5)Python代码操作数据库 1. 引入模块MySQLdb:import MySQLdb 2. 连接到数据库和建立游标:经过MySQL数据库的连接,还有游标的建立,才能够对数据库进行操作。代码如下: #connect to database. conn=MySQLdb....
Python中的MySQLdb模块是Python连接MySQL数据库的一个标准库,它为Python程序员提供了与MySQL服务器交互的能力。MySQLdb遵循Python的DB-API(数据库应用编程接口)规范,使得在不同数据库之间切换变得较为简单,因为...