python 3.6 +pyMysql 操作mysql数据库
版本信息:python:3.6 mysql:5.7 pyMysql:0.7.11
#################################################################
#author: 陈月白
#_blogs: http://www.cnblogs.com/chenyuebai/
#################################################################
# -*- coding: utf-8 -*- class MysqlTools():
"""
连接mysql
库、表操作
"""
def __init__(self,host,dbname,user,passwd,charset="utf8"):
self.host = host
self.dbname = dbname
self.user = user
self.passwd = passwd
self.charset = charset def connectMysqlDatabase(self):
"""连接db"""
try:
#连接db
connect = pymysql.connect(host=self.host,user=self.user,passwd=self.passwd,db=self.dbname,charset=self.charset)
cursor = connect.cursor()
databaseConnectInfo = self.user + "@" + "self.host" + "/" + self.dbname
print("INFO:connect database %s success."%databaseConnectInfo)
return connect,cursor
except:
traceback.print_exc()
print("ERROR:FUNCTION connectMysqlDatabase connect mysql database failed.") def executeSqlLine(self,sqlLine):
"""执行单条sql语句"""
if sqlLine and isinstance(sqlLine,str):
print("INFO:now start connect mysql dababase.")
connect,cursor = self.connectMysqlDatabase()
executeResult = ""
try:
#游标执行sql
cursor.execute(sqlLine)
executeResult = cursor.fetchall() #获取所有执行结果
cursor.close() #关闭游标
connect.commit() #确认提交
print("INFO:execute sql sucess. sqlLine = ", sqlLine)
except Exception as e:
print("ERROR:execute sql failed.errorInfo =",e)
print("ERROR:FUNCTION executeSql execute failed.sqlLine =",sqlLine)
connect.rollback() #回滚db
return str(e) + " sqlLine = " + sqlLine
#断开连接
connect.close()
print("INFO:connect closed.\n")
return executeResult
else:
print("ERROR:param sqlLine is empty or type is not str.sqlLine = ",sqlLine) def executeBatchSql(self,sqlList):
"""
批量执行sql
exp: executeBatchSql([sql_1,
sql_2,
sql_3,
......
])
"""
finalResultList = []
if sqlList:
for sql in sqlList:
executeResult = self.executeSqlLine(sql)
finalResultList.append(executeResult)
else:
print("ERROR:param sqlList is empty.")
return finalResultList
测试代码:
# -*- coding: utf-8 -*-
from my_code.work_tools import WorkTools mysql = WorkTools.MysqlTools("localhost","testdbname","rootuername","passwd")
#执行单行sql
ret1 = mysql.executeSqlLine("show databases") #批量执行
ret2 = mysql.executeBatchSql([
"show databases",
"show tables",
"update students_info set name = '王大花D' where id = 2",
"select * from students_info",
"error sql test" #异常sql测试
]) print("ret1 = ",ret1)
print("---------------------")
for i in ret2:
print(i)
测试表:

执行结果:
ret1 = (('information_schema',), ('mysql',), ('performance_schema',), ('sakila',), ('sys',), ('testdb',), ('world',))
---------------------
(('information_schema',), ('mysql',), ('performance_schema',), ('sakila',), ('sys',), ('testdb',), ('world',))
(('students_info',),)
()
((1, '陈月白', 'male', 25, '20176666', '1351234'), (2, '王大花D', 'female', 19, '19920816', '10086'), (3, '李强新', 'male', 18, '19941025', '10000'), (4, '王鹏', 'male', 20, '19970405', '10010'), (5, '钟齐', 'male', 22, '19970420', '123456789'), (6, '王大花', 'female', 15, '19981024', '12345678'))
(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'error sql test' at line 1") sqlLine = error sql test
python 3.6 +pyMysql 操作mysql数据库的更多相关文章
- Python MySQLdb模块连接操作mysql数据库实例_python
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...
- python使用pymysql操作mysql数据库
1.安装pymysql pip install pymysql 2.数据库查询示例 import pymysql # 连接database conn =pymysql.connect(user=' , ...
- flask + pymysql操作Mysql数据库
安装flask-sqlalchemy.pymysql模块 pip install flask-sqlalchemy pymysql ### Flask-SQLAlchemy的介绍 1. ORM:Obj ...
- python学习笔记之——操作mysql数据库
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: ...
- 使用pymysql操作mysql数据库
PyMySQL的安装和连接 PyMySQL的安装 python3. -m pip install pymysql python连接数据库 import pymysql # 创建连接 conn = py ...
- 用pymysql操作MySQL数据库
工具库安装 pip install pymysql 连接关闭数据库与增删改查操作 # 导入pymysql库 import pymysql # 打开数据库连接 # 参数1:数据库服务器所在的主机+端口号 ...
- PyMySQL操作mysql数据库(py3必学)
一,安装PyMySQL Python是编程语言,MySQL是数据库,它们是两种不同的技术:要想使Python操作MySQL数据库需要使用驱动.这里选用PyMySQL驱动. 安装方式还是使用pip命令. ...
- pymysql操作mysql数据库
1.建库 import pymysql # 建库 try: conn=pymysql.connect( host='127.0.0.1', port=3306, user='root', passwd ...
- 使用pymysql 操作MySQL数据库
安装 pip install pymysql 注:连接前要有可使用的账户及有权限.可操作的数据库 先来一个栗子: import pymysql # 连接database conn = pymysql. ...
随机推荐
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest J Cleaner Robot
Cleaner RobotCrawling in process... Crawling failed Time Limit:2000MS Memory Limit:524288KB ...
- Python-week2,第二周(基于Python3.0以上)
1,列表 存储数据我们可以使用变量,但是当有很多个数据的时候用变量就会出现很多的局限性,所以这时候就用到了列表.列表就是中括号里每个元素使用逗号隔开.列如 [1,2,3] 这就是一个列 ...
- win10提示管理员已阻止你运行此应用,如何强制运行
方法/步骤 这里以自己遇到的一个软件为例,下图就是禁止的图画: 在开始菜单中输入"cmd",然后以管理员身份运行: 按住"shift"键,同 ...
- n! 进制
n! 进制 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: 256 megabytes ...
- 【转】MYSQL 使用SQLyog导入遇到问题解决
原文地址:http://blog.163.com/o5655@126/blog/static/1667428342010910112510738/ 昨天公司想要将一个数据库的数据导出再导入到另外一个 ...
- FPGA跨时钟域处理方法
文章主要是基于学习后的总结. 1. 时钟域 假如设计中所有的触发器都使用一个全局网络,比如FPGA的主时钟输入,那么我们说这个设计只有一个时钟域.假如设计有两个输入时钟,如图1所示,一个时钟给接口1使 ...
- C#中四步轻松使用log4net记录本地日志
在这里,记录我在项目中使用log4net记录本地日志的步骤.在不会之前感觉很难,很神秘,一旦会了之后其实没那么难.其实所有的事情都是一样的,下面我就分享一下我使用log4Net的经验. 第一步:首先从 ...
- VeloView源码编译错误记录——VS manifest
编译环境 Win7 Visual Studio 2008 Win32 VeloView依赖关系 1)底层 Python Qt pcap boost eigen 2)中层 liblas: boost P ...
- LSA和pLSA的比较
Comparison LSA pLSA 1. Theoretical background Linear Algebra Probabilities and Statistics 2. Objec ...
- Python学习笔记整理总结【Memcache & Redis】
一.Memcached1.简介Memcached 是一个高性能的分布式内存对象缓存系统,一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性.用来存储 ...