-
Notifications
You must be signed in to change notification settings - Fork 6
/
mysql.py
88 lines (77 loc) · 2.47 KB
/
mysql.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import os.path
import pymysql
class DB_Exception(Exception):
pass
class mysql:
def __init__(self, db=None, cursor=None):
self.db = db;
self.cursor = cursor;
def __enter__(self):
return self
#file dir where file store host\n user\n password\n dbname\n
def connect(self):
file_name = "mysql_auth.txt"
if not os.path.isfile(file_name) :
raise DB_Exception(-1, "Mysql connect fail")
return -1
try:
file_pointer = open(file_name,"r")
except:
raise DB_Exception(-1, "Mysql auth file open failed")
return -1
host_str = file_pointer.readline().rstrip('\n').strip(' ')
user_str = file_pointer.readline().rstrip('\n').strip(' ')
token_str = file_pointer.readline().rstrip('\n').strip(' ')
dbname_str = file_pointer.readline().rstrip('\n').strip(' ')
file_pointer.close()
try:
self.db = pymysql.connect(host_str, user_str, token_str, dbname_str, use_unicode=True, charset="utf8")
self.cursor = self.db.cursor()
self.cursor.execute('SET NAMES utf8;')
self.cursor.execute('SET CHARACTER SET utf8;')
self.cursor.execute('SET character_set_connection=utf8;')
self.db.commit()
except:
raise DB_Exception(-1, "Mysql connect fail")
return -1
return 1
#insert, update, delete query
def cmd(self, sql):
try:
self.cursor.execute(sql)
self.db.commit()
except:
self.db.rollback()
raise DB_Exception(-1, "Mysql cmd fail -- {sql}".format(sql=sql))
return -1
return 1
#find query
def query(self, sql):
try:
self.cursor.execute(sql)
result = self.cursor.fetchall()
except:
raise DB_Exception(-1, "Mysql query fail -- {sql}".format(sql=sql))
result = -1
return result
def close(self):
try:
self.db.close()
except:
"Do Nothing"
def __exit__(self, exc_type, exc_value, traceback):
try:
self.db.close()
except:
"Do Nothing"
def to_list(sql_results):
"""
Transform the results from mysql query (tuple) to list
"""
ret = list()
for tup in sql_results:
if len(tup) == 1:
ret.append(tup[0])
else:
ret.append(list(tup))
return ret