黑马程序员技术交流社区

标题: 【广州python】使用pymysql编码错误解决方法 [打印本页]

作者: Leo06    时间: 2018-8-9 12:17
标题: 【广州python】使用pymysql编码错误解决方法
本帖最后由 Leo06 于 2018-10-22 23:25 编辑

完整代码:
#coding: utf-8
import pymysql
# 打开数据库连接
db =pymysql.connect("localhost","root","00000000","TESTDB",use_unicode=True,charset="utf8")
#若没有 use_unicode=True, charset="utf8" 那么就会发生如题错误:
#使用cursor()方法获取操作游标
cursor =db.cursor()
# SQL 插入语句
sql ="""INSERT INTO EMPLOYEE(FIRST_NAME,
        LAST_NAME, AGE, SEX, INCOME)
        VALUES ('张三', '李四', 20, '男', 1000)"""
#db.set_character_set('utf8')
cursor.execute('SETNAMES utf8;')
cursor.execute('SETCHARACTER SET utf8;')
cursor.execute('SETcharacter_set_connection=utf8;')

try:
    #执行sql语句
   cursor.execute(sql)
    #提交到数据库执行
   db.commit()
   print(" 没有错误!")
   
except Exceptionas e:
   print(e)
    #如果发生错误则回滚
   print(" 发生错误")
   db.rollback()
# 关闭数据库连接
db.close()

问题原因:
pymysql 正常情况下会尝试将所有的内容转为latin1字符集处理

解决思路:
设置连接和游标的charset为所希望的编码,如utf8






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2