administrador.base.orm.columnas.columnas_sql - gamboamartin/administrador GitHub Wiki

columnas_sql

La función columnas_sql construye una cadena SQL que incluye columnas con sus alias correspondientes. Valida los datos de entrada, gestiona la inserción de comas según sea necesario y permite decidir si se deben usar las columnas en bruto o con un alias. El retorno es la cadena SQL generada o un array en caso de error.

Signatura

private function columnas_sql(string $alias_columnas, string $columna_parseada, bool $columnas_en_bruto, string $columnas_sql, string $tabla_nombre):array|string

Parámetros

  • $alias_columnas (string): El alias que se asignará a la columna en la consulta SQL.
    • Descripción: Este alias se usa para identificar la columna en el resultado de la consulta.
  • $columna_parseada (string): El nombre de la columna que se va a añadir a la consulta SQL.
    • Descripción: Este es el nombre real de la columna en la base de datos, que será precedido por el nombre de la tabla.
  • $columnas_en_bruto (bool): Indicador de si se debe utilizar la columna en bruto o con un alias.
    • Indicador de si se debe utilizar la columna en bruto o con un alias.
  • $columnas_sql (string): La cadena SQL que contiene las columnas ya procesadas.
    • Descripción: Esta cadena se irá construyendo conforme se añadan más columnas.
  • $tabla_nombre (string): Descripción: Este nombre se usará para prefijar la columna en la consulta SQL.

Retorna

  • string La cadena SQL generada con las columnas y sus alias.

    • Descripción: La cadena contiene la columna procesada con su alias, si corresponde, y concatenada con la cadena SQL existente.
  • array Si ocurre un error en alguna de las validaciones o en la integración de la coma, se retorna un array con un mensaje de error.

    • Descripción: Este array describe el error ocurrido durante el proceso.

Explicación Detallada

  • Validación de Datos de Entrada:

    • Se valida que los datos de entrada sean correctos mediante la función valida_columnas_sql. Si hay un error en esta validación, se retorna un array con un mensaje de error.
  • Integración de la Coma:

    • La función verifica si es necesario añadir una coma antes de agregar una nueva columna a la cadena SQL. Esto se hace mediante la función coma. Si ocurre un error, se retorna un array con un mensaje de error.
  • Uso de Columnas en Bruto:

    • Si $columnas_en_bruto es true, se usará la columna sin alias. De lo contrario, se usará el alias especificado en $alias_columnas.
  • Construcción de la Cadena SQL:

    • La función construye la cadena SQL concatenando el nombre de la tabla, el nombre de la columna y el alias (si corresponde), y lo retorna.
  • Posibles Errores

    • Error en la Validación: Si hay un problema con los datos de entrada, se retorna un array con un mensaje de error.
    • Error al Integrar la Coma: Si ocurre un problema al intentar añadir la coma, se retorna un array con un mensaje de error.

Ejemplos

$alias_columnas = 'alias_col';
$columna_parseada = 'nombre_columna';
$columnas_en_bruto = false;
$columnas_sql = 'SELECT ';
$tabla_nombre = 'mi_tabla';

$resultado = $this->columnas_sql($alias_columnas, $columna_parseada, $columnas_en_bruto, $columnas_sql, $tabla_nombre);

if (is_string($resultado)) {
    echo "Consulta SQL: " . $resultado;
} else {
    echo "Error: " . $resultado['mensaje'];
}

Código de la Función

private function columnas_sql(string $alias_columnas, string $columna_parseada, bool $columnas_en_bruto,
                                  string $columnas_sql, string $tabla_nombre):array|string
    {


        $valida = $this->valida_columnas_sql(alias_columnas: $alias_columnas,columna_parseada:  $columna_parseada,
            tabla_nombre:  $tabla_nombre);
        if(errores::$error){
            return $this->error->error(mensaje:'Error al validar datos de entrada',data: $valida);
        }
        $coma = $this->coma(columnas_sql: $columnas_sql);
        if(errores::$error){
            return $this->error->error(mensaje:'Error al integrar coma',data: $coma);
        }

        if($columnas_en_bruto){
            $alias_columnas = $columna_parseada;
        }

        $columnas_sql.= $coma.$tabla_nombre.'.'.$columna_parseada.' AS '.$alias_columnas;

        return $columnas_sql;
    }