administrador.base.orm.sql.valida_column - gamboamartin/administrador GitHub Wiki

valida_column

La función valida_column realiza una validación exhaustiva de los parámetros relacionados con una columna de base de datos, como el nombre de la columna, el nombre de la tabla, el tipo de dato y, opcionalmente, la longitud de la columna. Esta validación es crucial para asegurar que los parámetros sean correctos antes de realizar operaciones en la base de datos.

Signatura


final public function valida_column_base(string $campo, string $table): true|array

Parámetros

  • $campo (string): Nombre de la columna a validar. Debe ser una cadena de texto no vacía y no numérica.
  • $table (string): Nombre de la tabla a validar. Debe ser una cadena de texto no vacía y no numérica.
  • $tipo_dato (string): Tipo de dato de la columna (por ejemplo, VARCHAR, INT). Debe ser una cadena de texto no vacía y no numérica.
  • $longitud (string, opcional): Longitud de la columna si el tipo de dato es VARCHAR. Debe ser una cadena numérica no vacía cuando se especifica.

Retorna

  • Tipo: true
  • Descripción:
    • Retorna true si todos los parámetros son válidos.
  • Tipo: array
  • Descripción:
    • En caso de error, retorna un array con la información detallada del error.
    • Si ocurre un error durante esta validación, se retorna un array con el error.

Explicación Detallada

  • Validación Base de campo y table:

    • Se llama a la función valida_column_base() para realizar una validación inicial del nombre de la columna y el nombre de la tabla:
  • Validación del Tipo de Dato ($tipo_dato):

    • Se limpia el valor de $tipo_dato utilizando trim() para eliminar espacios en blanco al inicio y al final.
    • Se verifica si $tipo_dato es una cadena vacía. Si es así, se genera y retorna un array con el error.
    • Se verifica si $tipo_dato es numérico. Si lo es, se genera y retorna un array con el error.
  • Validación de la Longitud para VARCHAR:

    • Se limpia el valor de $longitud utilizando trim().
    • Se convierte $tipo_dato a mayúsculas para asegurar que la comparación sea insensible a mayúsculas y minúsculas.
    • Si el tipo de dato es VARCHAR, se verifica que $longitud no esté vacío, ya que se requiere una longitud específica para este tipo de dato. Si $longitud está vacío, se genera y retorna un array con el error.
  • Retorno de Resultado:

    • Si todas las validaciones se completan sin problemas, la función retorna true.

Ejemplos

$campo = "nombre";
$tabla = "usuarios";
$tipo_dato = "VARCHAR";
$longitud = "255";

$validacion = $this->valida_column($campo, $tabla, $tipo_dato, $longitud);

if ($validacion === true) {
    // Todos los parámetros son válidos, continuar con la operación
} else {
    // Manejo del error
    print_r($validacion);
}

Código de la Función

final function valida_column(string $campo, string $table, string $tipo_dato, string $longitud = ''): true|array
    {

        $valida = $this->valida_column_base(campo: $campo,table:  $table);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al validar datos de entrada',data: $valida);
        }

        $tipo_dato = trim($tipo_dato);
        if($tipo_dato === ''){
            return $this->error->error(mensaje: 'Error tipo_dato esta vacio',data: $tipo_dato, es_final: true);
        }
        if(is_numeric($tipo_dato)){
            return $this->error->error(mensaje: 'Error tipo_dato debe ser un texto',data: $tipo_dato, es_final: true);
        }

        $longitud = trim($longitud);

        $tipo_dato = strtoupper($tipo_dato);
        if($tipo_dato === 'VARCHAR'){
            if($longitud === ''){
                return $this->error->error(
                    mensaje: 'Error tipo_dato esta VARCHAR entonces longitud debe ser u numero entero',
                    data: $tipo_dato, es_final: true);
            }

        }

        return true;

    }