Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Panic0 en 27 Julio 2021, 02:11 am



Título: Se pueden controlar estos errores de mysql? (Python)
Publicado por: Panic0 en 27 Julio 2021, 02:11 am
Hola, estaba tratando de contralar los errores de las querys echas con python, vi que se usa la excepción de error "mysql.connector.errors.ProgrammingError" para todo. Pero yo quiero controlar si una tabla es eliminada o no existe.

Para eso lanza este tipo de error
Código:
mysql.connector.errors.ProgrammingError 1054 (42S22): Unknown column 'cod_test in 'where clause'

Hay forma de controlar ese error en especifico?
Porque cuando voy a usar mysql.connector.errors.ProgrammingError en un try, este controla todos los errores. Como por ejemplo si un valor no esta en una tabla.

No se si me explique correctamente.

Aquí dejo este código
Código:
import mysql.connector

user     = ""
password = ""
host     = ""
db       = ""

mi_database = mysql.connector.connect(user=user,
                                      password=password,
                                      host=host,
                                    database=db)
puntero = mi_database.cursor()



def run_query(query):
    puntero.execute(query)
    consulta = puntero.fetchall()
    return consulta


if __name__ == "__main__":
    test = run_query("select * from paises2")
    for i in test:
        print(i)

Gracias!


Título: Re: Se pueden controlar estos errores de mysql? (Python)
Publicado por: srWhiteSkull en 28 Julio 2021, 00:30 am
Dependerá de la versión de Python, pero podrías coger el mensaje y por medio switches escoger la acción de acuerdo al mensaje


Título: Re: Se pueden controlar estos errores de mysql? (Python)
Publicado por: Danielㅤ en 28 Julio 2021, 01:09 am
Hola, o tal vez por códigos/numeros de error manejarlo así.


Saludos


Título: Re: Se pueden controlar estos errores de mysql? (Python)
Publicado por: Panic0 en 29 Julio 2021, 04:08 am
Hola, o tal vez por códigos/numeros de error manejarlo así.


Saludos

Hola, probé así pero no funciono


Pero muchas gracias por comentar!!