src.where.campo.data_sql_base - gamboamartin/where GitHub Wiki
data_sql_base
La función data_sql_base
es una función privada que valida los datos de un campo y un filtro, y luego construye una cadena SQL básica utilizando estos datos. Devuelve la cadena SQL generada si todos los datos son válidos o un array con un mensaje de error en caso contrario.
Signatura
private function data_sql_base(string $campo, string $campo_filtro, array $filtro): string|array
Parámetros
$campo (string): El campo que se utilizará en la construcción de la cadena SQL.
$campo_filtro (string): El campo de filtro que se utilizará para obtener el operador y el valor del filtro.
$filtro (array): Un array asociativo que contiene los datos del filtro.
Retorna
- string|array: La función devuelve una cadena SQL construida con el campo, operador y valor del filtro si todos los datos son válidos. En caso de error, devuelve un array con un mensaje de error.
Explicación Detallada
-
Validación de datos:
-
- La función comienza validando los datos del campo y el filtro utilizando la función valida_campo_filtro. Si ocurre un error durante la validación, la función retorna un array con un mensaje de error.
-
Construcción de la cadena SQL:
-
- Si el campo de filtro está vacío después de la limpieza, la función retorna un array con un mensaje de error indicando que el campo de filtro está vacío.
-
Limpieza del campo:
-
- Si todos los datos son válidos, la función construye y retorna una cadena SQL básica utilizando el campo, el operador y el valor del filtro.
Ejemplos
$filtro = [
'campo_filtro1' => [
'operador' => '=',
'valor' => 'valor1'
],
// más filtros...
];
$resultado = $this->data_sql_base('campo1', 'campo_filtro1', $filtro);
if (is_array($resultado)) {
echo "Error: " . $resultado['mensaje'];
} else {
echo "Cadena SQL: " . $resultado;
}
/*
En este ejemplo, si 'campo_filtro1' tiene todos los datos necesarios y válidos en el array de filtros, la función retornará una cadena SQL construida con el campo, operador y valor del filtro. En caso contrario, retornará un array con un mensaje de error.
*/
Código de la Función
private function data_sql_base(string $campo, string $campo_filtro, array $filtro): string|array
{
$valida = $this->valida_campo_filtro(campo: $campo,campo_filtro: $campo_filtro,filtro: $filtro);
if(errores::$error){
return $this->error->error(mensaje:'Error al validar datos', data:$valida);
}
return " ".$campo." " . $filtro[$campo_filtro]['operador'] . " '" . $filtro[$campo_filtro]['valor'] . "' ";
}