import os from dotenv import load_dotenv from mysql.connector import Error, connect, errorcode load_dotenv() db_host = os.environ.get("DB_HOST") db_user = os.environ.get("DB_USER") db_password = os.environ.get("DB_PASSWORD") db_name = os.environ.get("DB_NAME") try: connection = connect( host= db_host, user= db_user, password= db_password, database= db_name ) cursor = connection.cursor() ### Exemple 1 : commande # cursor.execute("SELECT * FROM employee LIMIT 5") # results = cursor.fetchone() # print(results) # ### Exemple 2 : requête complète comme variable # query = """ # CREATE TABLE IF NOT EXISTS movies ( # id INT AUTO_INCREMENT PRIMARY KEY, # title VARCHAR(100), # release_year YEAR(4), # genre VARCHAR(100), # collection_in_mil DECIMAL(4,1) # ) # """ # cursor.execute(query) # # CIUD : Create, Insert, Update, Delete => Commit # connection.commit() ### Exemple 3 : multiple requête insert_query = """ INSERT INTO movies (title, release_year, genre, collection_in_mil) VALUES ("Forrest Gump", 1994, "Drama", 330.2), ("INception", 2010, "Aventure", 293.7), ("Titanic", 1995, "Drama", 530.4) """ create_query = """ CREATE TABLE IF NOT EXISTS reviewers ( id INT AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(100), lastname VARCHAR(100) ) """ insert_query_2 = """ INSERT INTO reviewers (firstname, lastname) VALUES (%s, %s) """ reviewers = [ ("Jean", "FAIBLE"), ("Alain", "TERIEUR"), ("Tabatha", "CLOISON"), ("Ahmed", "BIEN") ] cursor.execute(insert_query) cursor.execute(create_query) cursor.executemany(insert_query_2, reviewers) connection.commit() cursor.execute("SELECT * FROM movies") # lire un par un resultat = cursor.fetchone() print(resultat) while resultat is not None: print(resultat) resultat = cursor.fetchone() # utilisation de lot cursor.execute("SELECT * FROM movies") batch = cursor.fetchmany(size= 4) while batch: print("----") for row in batch: print(row) batch = cursor.fetchmany(4) # Out of Memory insert_movies_query = """ INSERT INTO movies (title, release_year, genre, collection_in_mil) VALUES (%s, %s, %s, %s) """ with open("movies.csv", "r") as fichier: reader = csv.reader(fichier) next(reader) except Error as error: match error.errno: case errorcode.ER_ACCESS_DENIED_ERROR: print("Accès refusé. Vérifier USER et PASSWORD") case errorcode.ER_BAD_DB_ERROR: print("BDD n'existe pas") case _: print(f"Erreur {error}") finally: if cursor is not None: cursor.close() if connection is not None and connection.is_connected(): connection.close()