python使用mysql数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python使用mysql数据库相关的知识,希望对你有一定的参考价值。

如果是python2则使用MySQLdb这个库,这个库暂不支持python3.+

 

我这里使用的是python3,就只能用pymysql这个库了。

首先安装:

pip install pymysql

 

以下是测试代码:

#--encoding:utf-8--
#
import MySQLdb
 
class MySQLHelper:
    myVersion=0.1
    def __init__(self,host,user,password,charset="utf8"):
        self.host=host
        self.user=user
        self.password=password
        self.charset=charset
        try:
            self.conn=MySQLdb.connect(host=self.host,user=self.user,passwd=self.password,charset=self.charset)
            self.cursor=self.conn.cursor()
        except MySQLdb.Error as e:
            print (\'MySql Error : %d %s\' %(e.args[0],e.args[1]))
    
    def setDB(self,db):
        try:
            self.conn.select_db(db)
        except MySQLdb.Error as e:
            print (\'MySql Error : %d %s\' %(e.args[0],e.args[1]))
    
    def query(self,sql):
        try:
            rows=self.cursor.execute(sql)
            return rows;
        except MySQLdb.Error as e:
            print(\'MySql Error: %s SQL: %s\'%(e,sql))
            
    def queryOnlyRow(self,sql):
        try:
            self.query(sql)
            result=self.cursor.fetchone()
            desc=self.cursor.description
            row={}
            for i in range(0,len(result)):
                row[desc[i][0]]=result[i]
            return row;
        except MySQLdb.Error as e:
            print(\'MySql Error: %s SQL: %s\'%(e,sql))
    
    def queryAll(self,sql):
        try:
            self.query(sql)
            result=self.cursor.fetchall()
            desc=self.cursor.description
            rows=[]
            for cloumn in result:
                row={}
                for i in range(0,len(cloumn)):
                    row[desc[i][0]]=cloumn[i]
                rows.append(row)  
            return rows;
        except MySQLdb.Error as e:
            print(\'MySql Error: %s SQL: %s\'%(e,sql))
    
    def insert(self,tableName,pData):
        try:
            newData={}
            for key in pData:
                newData[key]="\'"+pData[key]+"\'"
            key=\',\'.join(newData.keys())
            value=\',\'.join(newData.values())
            sql="insert into "+tableName+"("+key+") values("+value+")"
            self.query("set names \'utf8\'")
            self.query(sql)
            self.commit()
        except MySQLdb.Error as e:
            self.conn.rollback()
            print(\'MySql Error: %s %s\'%(e.args[0],e.args[1]))
        finally:
            self.close()
    
    def update(self,tableName,pData,whereData):
        try:
            newData=[]
            keys=pData.keys()
            for i in keys:
                item="%s=%s"%(i,"\'"+pData[i]+"\'")
                newData.append(item)
            items=\',\'.join(newData)
            newData2=[]
            keys=whereData.keys()
            for i in keys:
                item="%s=%s"%(i,"\'"+whereData[i]+"\'")
                newData2.append(item)
            whereItems=" AND ".join(newData2)
            sql="update "+tableName+" set "+items+" where "+whereItems
            self.query("set names \'utf8\'")
            self.query(sql)
            self.commit()
        except MySQLdb.Error as e:
            self.conn.rollback()
            print(\'MySql Error: %s %s\'%(e.args[0],e.args[1]))
        finally:
            self.close()
    
    def getLastInsertRowId(self):
        return self.cursor.lastrowid
    
    def getRowCount(self):
        return self.cursor.rowcount
    
    def commit(self):
        self.conn.commit()
    
    def close(self):
        self.cursor.close()
        self.conn.close()

 

 

#--encoding:utf-8--
#
from MySQLHelper import *
 
helper=MySQLHelper("localhost","root","")
helper.setDB("employee")
sql="select * from users"
rows=helper.queryAll(sql)
for row in rows:
    print row[\'id\'],row[\'name\'].decode("utf-8"),row[\'birthday\']
————————————————
版权声明:本文为CSDN博主「拉斐尔-Raphael」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/oxiaoxio/article/details/50478123

以上代码是参考别人的,直接拿过来用,发现报错了,现在已经修复。

 

可以正常查询:

 

以上是关于python使用mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章

python 用于数据探索的Python代码片段(例如,在数据科学项目中)

使用 Python 代码片段编写 LaTeX 文档

常用python日期日志获取内容循环的代码片段

Python MySQL executemany的使用

Python 向 Postman 请求代码片段

python使用上下文对代码片段进行计时,非装饰器