`
vtrtbb
  • 浏览: 358367 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python操作mysql的一个类

阅读更多

已测试通过,python2.7环境 ,mysql5.6

 

#coding=utf-8
#!/usr/bin/env python
import MySQLdb
import time

class MySQL:
    error_code = ''
    _instance = None
    _conn = None
    _cur  = None
    
    _TIMEOUT = 30
    _timecount = 0
    
    def __init__(self,dbconfig):
        try:
            self._conn = MySQLdb.connect(
                                         host=dbconfig['host'],
                                         port=dbconfig['port'],
                                         user=dbconfig['user'],
                                         passwd=dbconfig['passwd'],
                                         db=dbconfig['db'],
                                         charset=dbconfig['charset'])
        except MySQLdb.Error,e:
            self.eror_code = e.args[0]
            error_msg = 'MySQL Error !',e.args[0],e.args[1]
            print error_msg            
            
            if self._timecount < self._TIMEOUT:
                interval = 5
                self._timecount += interval
                time.sleep(interval)
                return self.__init__(dbconfig)
            else:
                raise Exception(error_msg)
            
        self._cur = self._conn.cursor()
        self._cur.execute('SET NAMES utf8')
        self._instance = MySQLdb
            
    def query(self,sql):
        try:           
            result = self._cur.execute(sql)
        except MySQLdb.Error,e:
            self.error_code = e.args[0]
            print "更新错误",e.args[0],e.args[1]
            result = False
        return result
    
    def update(self,sql):
        try:
            result = self._cur.execute(sql)
            self._conn.commit()
        except MySQLdb.Error,e:
            self._conn.rollback()
            self.error_code = e.args[0]
            print "更新错误",e.args[0],e.args[1]
            result = False
        return result
         
    def insert(self,sql):
        try:
            self._cur.execute("SET NAMES utf8")
            self._cur.execute(sql)
            self._conn.commit()
            return self._conn.insert_id()
        except MySQLdb.Error, e:
            self._conn.rollback()
            self.error_code = e.args[0]
            return False
        
    def fetchAllRows(self):
        return self._cur.fetchall()
    
    def fetchOneRow(self):
        return self._cur.fetchone()
    
    def getRowCount(self):
        return self._cur.rowcount
    
    def commit(self):
        self._conn.commit()
    
    def rollback(self):
        self._cur.rollback()
    
    def __del__(self):
        try:
            self._cur.close()
            self._conn.close()
        except:
            pass
        
    def close(self):
        self.__del__()
        
if __name__ == '__main__':
    dbconfg = {'host':'172.0.0.1','port':3306,'user':'my','passwd':'123456','db':'infodb','charset':'utf8'}
    db = MySQL(dbconfg)
    sql = 'SELECT * FROM t_user limit 20'
    db.query(sql)
    
    result = db.fetchAllRows()
    print result
    
    for row in result:
        for column in row:
            print column
    
    db.close()
    
        

 

分享到:
评论

相关推荐

    python mysql操作类 MySQL.py

    最近用到Python操作数据库,MySql的操作封装类,简单写了一个Mysql封装操作类,分享一下,需要安装pymsql,安装方法:https://blog.csdn.net/sinat_28984567/article/details/105316092

    python 操作mysql 安装和使用

    Python操作MySQL是一个常见的任务,特别是在数据处理和Web开发中。MySQL是一个流行的开源关系型数据库管理系统,而Python作为一种功能强大的编程语言,提供了多种库来与MySQL交互。本教程将详细介绍如何在Python环境...

    Python操作Mysql实例教程手册.pdf

    这篇“Python操作MySQL实例教程手册”将深入探讨如何通过Python进行MySQL数据库的操作。 首先,你需要了解Python的数据库接口标准——DB-API(PEP 249)。Python的DB-API提供了一个统一的接口,用于与各种不同的...

    python操作MySQL教程

    对于初学者来说,阅读《Python操作Mysql实例教程手册.pdf》这样的资源将非常有帮助,它会提供更详细的操作示例和实践指南,助你在Python与MySQL的结合使用上更加熟练。通过不断练习和理解,你将能够利用Python的强大...

    python操作mysql封装库

    python连接mysql,操作mysql函数封装

    Python操作Mysql实例代码教程.pdf

    Python操作Mysql实例代码教程.pdf

    python操作MySQL的MySQLdb模块

    Python中的MySQLdb模块是连接和操作MySQL数据库的一个重要工具,尤其在Python 2.x版本中广泛使用。这个模块是Python的DB-API(数据库应用编程接口)的一个...通过学习和实践,你可以熟练掌握Python操作MySQL的技能。

    python操作mysql

    Python操作MySQL是一个常见的任务,特别是在数据处理和Web开发中。MySQL是一个流行的开源关系型数据库管理系统,而Python提供了多种库来与MySQL进行交互,其中最常用的是`MySQLdb`。这篇博客文章(链接已提供)可能...

    python操作mysql数据库上课讲义.pdf

    Python操作MySQL数据库时,还可以执行插入、更新、删除等其他SQL语句。此外,还可以使用参数化查询来防止SQL注入攻击,如`cursor.execute("INSERT INTO EMPLOYEE VALUES (%s, %s, %s, %s, %s)", (first_name, last_...

    Python访问Mysql数据库

    Python拥有一个庞大的标准库,包括了各种常用功能,如网络通信、文件操作、文本处理等。此外,Python社区还提供了大量的第三方库,覆盖了几乎所有可能的需求领域。 #### 二、Python访问MySQL数据库 Python访问...

    Python操作MySQL数据进行图片存取操作

    以上就是Python操作MySQL数据进行图片存取操作的知识点。这个过程中,我们使用了Python的文件操作和数据库操作技能,特别是对二进制数据的处理能力。通过这个例子,我们可以理解到Python和MySQL数据库在处理非结构化...

    python读写MySQL数据库操作

    python读写MySQL数据库操作,读操作,写操作,python读写MySQL数据库操作

    python连接mysql插件

    在这个场景下,"python连接mysql插件"指的是Python中的一个名为`mysql-connector-python`的库,它允许Python程序连接并操作MySQL数据库。 `mysql-connector-python`是Oracle官方提供的Python驱动程序,完全兼容...

    最全的python操作mysql数据库的函数

    自己收集编写的python操作mysql函数,奉献给大家,该文件包含用python处理mysql的查、增、改、删、命名、排序等操作的函数,mysql数据库操作的各种sql语句可供参考。

    完整版 Python高级开发课程 高级教程 06 Python操作MySQL数据库.pptx

    在本课程"Python高级开发课程 高级教程 06 Python操作MySQL数据库"中,我们将深入探讨如何使用Python与MySQL数据库进行交互。Python是广泛应用于数据处理和数据分析的语言,而MySQL则是一种流行的开源关系型数据库...

    基于python和mysql实现成绩管理系统 ,基于python和mysql的学生信息管理系统,Python

    2. 数据库连接:Python提供了多种库来连接和操作MySQL数据库,如`pymysql`和`mysql-connector-python`。这些库允许开发者执行SQL查询,插入、更新和删除数据,以及处理数据库连接。 3. MySQL数据库设计:首先,我们...

    图书信息管理系统python+mysql.zip

    综上所述,"图书信息管理系统python+mysql.zip"是一个结合了Python的编程能力和MySQL数据库存储功能的实用系统,它在图书管理领域提供了高效、可靠的解决方案。通过学习和理解这个系统,开发者不仅可以提升Python和...

    Python操作MySQL数据库9个实用实例

    在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示。下边是打包了32与64版本。 MySQL-python-1.2.3.win32-py2.7.exe MySQL-python-1.2.3.win-amd64-...

    【PyMySQL】python3 mysql数据库操作工具

    PyMySQL是Python连接MySQL数据库的一个库,它提供了类似于Python标准库DB-API(PEP 249)的接口,使得在Python中操作MySQL变得简单易行。 ### 安装PyMySQL 要开始使用PyMySQL,首先需要安装这个库。在安装过程中,...

    Python-mysqldiff是一款轻量级数据库对比工具同时支持新增表的默认数据导入

    总的来说,Python-mysqldiff是Python开发环境下一个实用的数据库管理工具,它简化了数据库的版本控制,提高了开发效率,同时也降低了因为数据库变更导致的问题风险。对于从事Python开发且需要管理多个MySQL数据库的...

Global site tag (gtag.js) - Google Analytics