python调用mysql数据库sql语句过长有问题吗_python操作mysql数据库,一次性执行多条语句不执行...
總結(jié):1、使用這種方法,獲取到的返回值總是最后一條命令的返回值,如果最后一條命令是update或者delete這種sql,則返回為()
2、sql的每一條語(yǔ)句后面都需要添加一個(gè)分號(hào),不然最后splice時(shí)候 ,會(huì)少一條語(yǔ)句
#-*- coding:utf-8 -*-
"""
@author:yaren_zhou
@file: DButils.py
@time: 2019/12/06 14:56
@contact: 1601704037@qq.com
@software: PyCharm
"""
import pymysql
import logging
logger = logging.getLogger(__name__) #操作日志對(duì)象
class MysqlConn():
'''
數(shù)據(jù)庫(kù)連接的公共類(lèi),提供連接數(shù)據(jù)庫(kù),查詢(xún),刪除語(yǔ)句等操作
'''
def __init__(self,dbName = None):
self.currentConn = None
self.host = "your host"
self.user = "username"
self.password = "password"
self.dbName = dbName
self.charset = "utf8mb4"
self.resultlist = []
def open(self):
try:
conn = pymysql.connect(
host = self.host,
user = self.user,
password = self.password,
db = self.dbName,
charset=self.charset,
)
except pymysql.err.OperationalError as e:
logger.exception("數(shù)據(jù)庫(kù)連接失敗!")
if "Errno 10060" in str(e) or "2003" in str(e):
logger.error("數(shù)據(jù)庫(kù)連接失敗!")
raise
logger.info(f"數(shù)據(jù)庫(kù)連接成功")
self.currentConn = conn # 數(shù)據(jù)庫(kù)連接完成
self.cursor = self.currentConn.cursor() # 游標(biāo),用來(lái)執(zhí)行數(shù)據(jù)庫(kù)
# 把多條sql拆分成單條,放進(jìn)sqllist里面
def spliteSql(self,sql):
sqllist = sql.split(';')
return sqllist[0:-1]
#最后面會(huì)多一條空值
def execSql(self,sql:str,closeConn = True) -> list:
'''執(zhí)行sql,支持執(zhí)行多條sql語(yǔ)句。'''
self.open()
sqllist = self.spliteSql(sql) #先處理傳入的sql語(yǔ)句
logger.info(f"開(kāi)始執(zhí)行sql語(yǔ)句")
with self.cursor as my_cursor:
for i in sqllist:
my_cursor.execute(i) #執(zhí)行sql語(yǔ)句
self.resultlist = my_cursor.fetchall() #獲取數(shù)據(jù)
self.currentConn.commit() #提交
if self.currentConn:
self.close()
return self.resultlist
# def execProc(self):
def close(self): #關(guān)閉連接
logger.info(f"關(guān)閉數(shù)據(jù)庫(kù)連接")
if self.cursor:
self.cursor.close()
self.currentConn.close()
總結(jié)
以上是生活随笔為你收集整理的python调用mysql数据库sql语句过长有问题吗_python操作mysql数据库,一次性执行多条语句不执行...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ddos只能攻击网站吗(ddos攻击不了
- 下一篇: linux的特点有哪些(linux的特点