python连接数据库基础代码演示
连接数据库 pymysql.connect
操作数据库 创建curson游标,执行(execute)SQL语句,获取结果数据
增删改的语句需要执行commit.见下面代码示例
关闭连接 .close()
# coding:utf-8
# 连接数据库
# 操作数据库 创建curson游标,执行(execute)SQL语句,获取结果数据
# 增删改的语句需要执行commit.见下面代码示例
# 关闭连接 .close()
import time
import pymysql
class Readsql():
# 打开数据库连接,分别是主机 、用户、 密码以及初始连接的数据库
# pymysql.connect(host = '127.0.0.1',port = '3306',user = 'root',password = 'root123',database = 'test')
db = pymysql.connect("192.168.0.186", "root", "root123", "test")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
print('连接上了!')
# SQL 查询语句
sql = "SELECT * FROM test_USER \
WHERE MOBILE = 13412345678"
try:
# 执行SQL语句
cursor.execute(sql)
# 增删改的语句需要执行commit
# sql2 = ""insert into user(namne,pwd) values("jin","123")
# cursor.execute(sql2)
# cursor.execute('commit')
# 获取所有记录列表 fetchall 展示所有的查询数据 fetchone 展示一条查询数据 fetchmany(数字) 展示数字条数查询数据
results = cursor.fetchall()
# 打印返回的类型
print(type(results))
for row in results:
aa = row[0]
bb = row[1]
cc = row[2]
dd = row[3]
ee = row[4]
ff = row[5]
# 打印结果
print("aa=%s,bb=%s,cc=%s,dd=%s,ee=%s,ff=%s" % \
(aa, bb, cc, dd, ee, ff))
except:
print("Error: unable to fetch data")
# 关闭连接
db.close()
封装成类函数
作为工具类,这样就可以被其他类进行调用
# coding:utf-8
import pymysql
import time
class MyDB:
# 初始化数据库连接
def __init__(self):
try:
self.db_con = pymysql.connect(host='127.0.0.1', port='3306', user='root', password='root123',database='test')
except Exception as e:
print("数据库连接失败:%s" % e)
# 关闭数据库连接
def close(self):
self.db_con.close()
# def creat_cursor(self):
# self.cursor= self.db_con.cursor()
# return self.cursor
# 查询数据库方法,query为要执行的语句
def select_db(self, query):
print("本次执行的语句是: %s" % query)
try:
cursor = self.db_con.cursor()
result = cursor.execute(query)
print(result)
return result
except Exception as e:
print("数据库查询失败:%s" % e)
cursor.close()
exit()
# 增删改查数据库方法,query为要执行的语句
def alter_db(self, query):
print("本次执行的语句是:%s" % query)
try:
cursor = self.db_con.cursor()
cursor.execute(query)
cursor.execute('commit')
return True
except Exception as e:
print("数据库查询失败:%s" % e)
# 执行语句错误,回滚事务
cursor.execute('rollback')
cursor.close()
exit()