-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdatabase.py
89 lines (74 loc) · 2.32 KB
/
database.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
89
import os
from dotenv import load_dotenv
from mysql.connector import connect, Error
# Arquivo de Configuração do Banco de Dados
''' Serve Duas Funções:
- executarQuery(): Executa Qualquer Coisa que Não seja SELECT
- executarSelect(): Executa APENAS SELECTs
'''
# Carrega as variáveis de ambiente do arquivo .env
load_dotenv()
# Dicionário de Configuração do banco de dados, usado nas duas funções
config = {
"user": os.getenv("DB_USER"),
"password": os.getenv("DB_PASSWORD"),
"host": os.getenv("HOST"),
"database": os.getenv("DATABASE")
}
prod = os.getenv("PROD")
def executarQuery(script):
"""
Função responsável por inserir os dados no banco.
Recebe uma query SQL como parâmetro e a executa, usando as credenciais específicas.
"""
db = None
cursor = None
try:
db = connect(**config)
if db.is_connected():
db_info = db.get_server_info()
if not prod:
print('Connected to MySQL server version -', db_info)
cursor = db.cursor()
if not prod:
print(f"Executando a query: {script}")
cursor.execute(script)
db.commit() # Confirma a transação no banco de dados
print("Dados inseridos com sucesso!")
except Error as e:
print('Erro do MySQL (NAO-SELECT) -', e)
finally:
if cursor:
cursor.close()
if db:
db.close()
def executarSelect(script):
"""
Função responsável por executar uma query SELECT no banco de dados.
Recebe uma query SQL como parâmetro e retorna os resultados.
"""
db = None
cursor = None
rows = None
try:
db = connect(**config)
if db.is_connected():
db_info = db.get_server_info()
if not prod:
print('Connected to MySQL server version -', db_info)
cursor = db.cursor()
if not prod:
print(f"Executando o select: {script}")
cursor.execute(script)
rows = cursor.fetchall()
if not prod:
for row in rows:
print(row)
except Error as e:
print('Error do MySQL (SELECT) -', e)
finally:
if cursor:
cursor.close()
if db:
db.close()
return rows