python链接mysql数据库及中文编码问题

在python中链接mysql数据库需要下载MySQLdb模块,命令很简单:

pip install MySQLdb

安装完该模块之后只需要在编程的时候import就可以了。
接下来介绍一下常用的数据库操作命令。先定义一个DBConn的类,用于解决数据库连接/事务提交/数据库关闭的功能。

# -*- coding: UTF-8 -*-
import MySQLdb

class DBConn(object):
    conn = None

    #建立和数据库系统的连接
    #注意这里在数据库中有中文时,必须指定连接的编码方式为utf8,不然插入数据库时会出现乱码,导致出错。
    def connect(self):
        self.conn = MySQLdb.connect(host="localhost",port=3306,user="root", passwd="××××(改成自己的密码)" ,db="house",charset="utf8")

    #获取操作游标
    def cur(self):
        try:
            return self.conn.cursor()
        except (AttributeError, MySQLdb.OperationalError):
            self.connect()
            return self.conn.cursor()

    def commit(self):
        return self.conn.commit()

    #关闭连接
    def close(self):
        return self.conn.close()

然后介绍一下数据库常用的操作,所有的操作都通过cur.execute()函数进行提交,该函数第一个参数为要执行的mysql数据库命令,第二个参数为提供的python程序中的相关变量列表:

#创建数据表
cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")

#插入一条数据,可以直接插,也可以将要查的数据以列表形式提供
cur.execute("insert into student values('2','Tom','3 year 2 class','9')")
cur.execute("insert into student values(%s,%s,%s,%s)",['2','Tom','3 year 2 class','9'])

#修改查询条件的数据
cur.execute("update student set class='3 year 1 class' where name = 'Tom'")

#删除查询条件的数据
cur.execute("delete from student where age='9'")

好了,简单的数据库操作命令已经介绍完毕,接下来说一说中文编码问题。这里主要涉及两个方面,一个是数据库本身的编码方式,一个是python程序的编码方式。第一个问题可以参考之前写的一篇文章,第二个问题就是上面提到的在连接数据库的时候一定要设置charset=”utf8”,这一点很关键。如果还是不行的话,可以尝试将插入数据库的字符串改编码格式。比如说要将str变量插入数据库,那么可以在插入之前进行str.encode()。一般情况下都是可以的了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值