基本连接方式
import pymysql
try:
conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",
password="root",db="db_mysql",charset='utf8')
cursor = conn.cursor()
except Exception as e:
print("失败:"+e)
conn.rollback()
finally:
cursor.close()
conn.close()
查询数据
count = cursor.execute("select * from emp")
print(count)
data1= cursor.fetchone()
print(data1)
data = cursor.fetchall()
print(data)
7
(1, '张三', 20, 1)
((2, '李四', 18, 2), (3, '王五', 30, 3), (4, '赵六', 50, 3), (5, '翠花', 22, 3), (6, 'wb', 30, 3), (7, 'wyb', 23, None))
插入、修改、删除数据
sql = cursor.execute("insert into emp values(8,'马保国',69,3)")
conn.commit()
if sql == 1:
print("陈坤")
else:
print("失败")
print(sql)
SQL的工具类
import pymysql
class SQLHeler(object):
def __init__(self,user,password,db,host="localhost",port=3306,charset="utf8"):
self.host = host
self.port = port
self.user = user
self.password = password
self.db = db
self.charset = charset
def __connection(self):
self.conn = pymysql.connect(host=self.host,port=self.port,user=self.user,\
password=self.password,db=self.db,charset=self.charset)
self.cursor = self.conn.cursor()
def update(self,sql,params=None):
try:
self.__connection()
count = self.cursor.execute(sql,params)
self.conn.commit()
return count
except Exception as e:
print("出现错误:",e)
self.conn.rollback()
finally:
self.__closeResource()
def queryOne(self,sql,params=None):
try:
self.__connection()
count = self.cursor.execute(sql,params)
data = self.cursor.fetchone()
return count,data
finally:
self.__closeResource()
def queryAll(self,sql,params=None):
try:
self.__connection()
count = self.cursor.execute(sql,params)
data = self.cursor.fetchall()
return count,data
finally:
self.__closeResource()
def __closeResource(self):
if self.cursor:
self.cursor.close()
if self.conn is not None:
self.conn.close()
测试
from sqlHelper import SQLHeler
sqlhelper=SQLHeler(user="root",password="root",db="db_mysql")
sql="select * from emp"
params=None
count ,user= sqlhelper.queryAll(sql,params)
print("共查询到{}个用户".format(count))
print(user)
共查询到8个用户
((1, '张三', 20, 1), (2, '李四', 18, 2), (3, '王五', 30, 3), (4, '赵六', 50, 3), (5, '翠花', 22, 3), (6, 'wb', 30, 3), (7, 'wyb', 23, None), (8, '马保国', 69, 3))