python和数据库交互报错怎么改
这是用pymysql连接数据库的一个测试文档,可以试试
import pymysql
class Mysql:
__instance = None
__is_first = True
def __new__(cls, *args, **kwargs):
if not cls.__instance:
cls.__instance = object.__new__(cls)
return cls.__instance
def __init__(self, user, password, database, host="localhost", port=3306):
if self.__is_first:
self.__con = pymysql.connect(user=user, password=password, database=database, host=host, port=port)
self.__cur = self.__con.cursor()
Mysql.__is_first = False
def __del__(self):
self.__cur.close()
self.__con.close()
def query_one(self, sql, *args):
self.__cur.execute(sql, args)
return self.__cur.fetchone()
def query_all(self, sql, *args):
self.__cur.execute(sql, args)
return self.__cur.fetchall()
def execute_tb(self, sql, *args):
try:
self.__cur.execute(sql, args)
self.__con.commit()
return True
except:
self.__con.rollback()
return False
if __name__ == '__main__':
res = Mysql("user", "password", "database")
re = res.query_all("select * from datatable")
print(re)