标签:cur Python 数据库 pymysql cursor Mysql close self con
1、安装 pymysql 库
pip install pymysql
2、操作Mysql数据库
import pymysql
# 打开数据库链接
db = pymysql.connect(host='数据库IP', port='3306', user='用户名', passwd='密码'
, database='数据库')
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute()方法执行SQL语句
cursor.execute('SQL语句')
# 使用 fetchone() 方法获取一条数据
data_one = cursor.fetchone()
# 使用 fetchall()方法获取所有数据
data_all = cursor.fetchall()
# 除了查询,其他修改操作(增,删,改)
try:
# 执行SQL语句
cursor.execute('SQL语句')
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 最后操作
cursor.close() # 关闭游标
db.close() # 关闭数据库
3、可以封装成类,和对应的方法
import pymysql
class DBConnection:
def __init__(self, ip='', port=3306, user='root', passwd='123456', db=''):
self.ip = ip
self.port = port
self.user = user
self.passwd = passwd
self.db = db
# 连接数据库
def getCon(self):
try:
conn =pymysql.connect(
host=self.ip,
port=self.port,
user=self.user,
passwd=self.passwd,
database=self.db)
return conn
except pymysql.Error as e:
print(f'mysqldb error :{e}')
#查
def select(self, sql):
try:
con = self.getCon()
cur = con.cursor() # 创建游标
cur.execute(sql) # 执行语句
result = cur.fetchall() # 匹配所有
return result
except pymysql.Error as e:
print(f'mysqldb error :{e}')
finally:
cur.close()
con.close()
# 改
def update(self, sql):
try:
con = self.getCon()
cur = con.cursor()
cur.execute(sql)
con.commit() # 提交事务
except pymysql.Error as e:
con.rollback()
print(f'mysqldb error :{e}')
finally:
cur.close()
con.close()
# 增
def insert(self, sql):
try:
con = self.getCon()
cur = con.cursor()
cur.execute(sql)
con.commit()
except pymysql.Error as e:
con.rollback()
print(f'mysqldb error :{e}')
finally:
cur.close()
con.close()
# 删
def delete(self, sql):
try:
con = self.getCon()
cur = con.cursor()
cur.execute(sql)
con.commit()
except pymysql.Error as e:
con.rollback()
print(f'mysqldb error :{e}')
finally:
cur.close()
con.close()
标签:cur,Python,数据库,pymysql,cursor,Mysql,close,self,con 来源: https://blog.csdn.net/weixin_44801980/article/details/116210533
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。