README / database.py
Sorawit26's picture
Upload 8 files
ef9b1b9 verified
Raw History Blame Contribute Delete
2.95 kB
# sudo mysql -u root -p
# CREATE DATABASE monitor_log;
# USE monitor_log;
# SHOW TABLES;
# DROP TABLE anonymous_no;
# DROP TABLE log;
# SELECT * FROM information_schema.columns WHERE table_name = 'log';
import mysql.connector
from mysql.connector import Error
class Database:
def __init__(self, host, user, password, database):
"""Initialize the database connection."""
self.host = host
self.user = user
self.password = password
self.database = database
self.connection = None
def connect(self):
"""Establish a connection to the database."""
try:
self.connection = mysql.connector.connect(
host=self.host,
user=self.user,
password=self.password,
database=self.database
)
if self.connection.is_connected():
print("Successfully connected to the database.")
except Error as e:
print(f"Error: {e}")
def disconnect(self):
"""Close the database connection."""
if self.connection.is_connected():
self.connection.close()
print("Database connection closed.")
def execute_query(self, query, values=None):
"""Execute a query that does not return results (INSERT, UPDATE, DELETE)."""
cursor = self.connection.cursor()
try:
if values:
cursor.execute(query, values)
else:
cursor.execute(query)
self.connection.commit()
print("Query executed successfully.")
except Error as e:
print(f"Error: {e}")
finally:
cursor.close()
def fetch_all(self, query):
"""Execute a SELECT query and return all results."""
cursor = self.connection.cursor()
results = []
try:
cursor.execute(query)
results = cursor.fetchall()
return results
except Error as e:
print(f"Error: {e}")
finally:
cursor.close()
def create_table(self, create_table_query):
"""Create a new table in the database."""
cursor = self.connection.cursor()
try:
cursor.execute(create_table_query)
print("Table created successfully.")
except Error as e:
print(f"Error: {e}")
finally:
cursor.close()
if __name__ == "__main__":
db = Database(host='localhost', user='root', password='0123456789', database='monitor_log')
db.connect()
db.create_table("""
CREATE TABLE anonymous_no (
number INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(60) NOT NULL,
description VARCHAR(500)
);
""")
db.create_table("""
CREATE TABLE log (
id VARCHAR(255) AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(60) NOT NULL,
datetime DATETIME DEFAULT CURRENT_TIMESTAMP
);
""")
db.disconnect()