一直想要连一下数据库,今天有空就试了一下,,,真是让人智熄。
版本:python2.7 + MYSQL5.5.8
数据库安装,连接都很顺利,就是死活都插不进去中文字符,各种报错。收集网络上的各种解决方法之后还是没有解决,又是秃头的一天。网络上的各种答案都在说连接时的编码问题,和中文字符的编解码,突发奇想,是不是创建表格的时候没有设置编码格式,铛铛铛,去sql图形界面一查果然如此。问题顺利解决,代码如下:
# -*- coding: UTF-8 -*-
import MySQLdb
# 打开数据库连接
db = MySQLdb.connect("localhost", "root", "1234", "name", charset='utf8' )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 如果数据表已经存在使用 execute() 方法删除表。
cursor.execute("DROP TABLE IF EXISTS WORKER")
str = '上海'.decode('utf8').encode('utf8')
# 执行sql语句
# 创建数据表SQL语句,设置表的编码格式
sql = """CREATE TABLE WORKER (
NAME CHAR(20) NOT NULL,
ADDR CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT ) ENGINE=InnoDB DEFAULT CHARSET=utf8"""
cursor.execute(sql)
sql = """INSERT INTO WORKER(NAME,
ADDR, AGE, SEX, INCOME)
VALUES (%s, %s, %s, %s, %s)"""
try:
# 执行sql语句
term = ('Tom',str, '20', 'M', '2000')
cursor.execute(sql,term)
# 提交到数据库执行
db.commit()
except:
# Rollback in case there is any error
db.rollback()
# 关闭数据库连接
db.close()