12345678910111213141516171819202122232425262728293031323334353637 |
- import mysql.connector
- from flask import current_app
- def execute_query(query, params=None, fetch_one=False):
- """Execute a SQL query and optionally fetch results."""
- try:
- # Get database configuration from the current app context
- db_config = {
- "host": current_app.config['DBHOST'],
- "user": current_app.config['DBUSER'],
- "password": current_app.config['DBPASS'],
- "database": current_app.config['DATABASE'],
- }
-
- # Establish database connection
- connection = mysql.connector.connect(**db_config)
- cursor = connection.cursor(dictionary=True)
-
- # Execute the query with optional parameters
- cursor.execute(query, params)
-
- # Fetch results if it's a SELECT query
- if query.strip().upper().startswith("SELECT"):
- result = cursor.fetchone() if fetch_one else cursor.fetchall()
- else:
- # Commit changes for INSERT, UPDATE, DELETE
- connection.commit()
- result = cursor.rowcount # Number of affected rows
-
- # Close the database connection
- cursor.close()
- connection.close()
- return result
- except mysql.connector.Error as err:
- print("Error: ", err)
- return None
|