src.where.data_sql_campo - gamboamartin/where GitHub Wiki
data_sql_campo
La función data_sql_campo
es una función privada dentro de una clase que genera una cadena SQL basada en el campo proporcionado, un campo de filtro, y un array de filtros. La función valida primero los datos antes de construir y devolver una cadena SQL que combina el campo y el filtro con su respectivo operador.
Signatura
private function data_sql_campo(string $campo, string $campo_filtro, array $filtro): string|array
Parámetros
$campo (string): Nombre del campo de la base de datos que se desea filtrar.
$campo_filtro (string): Clave que se utilizará para acceder a los datos dentro del array $filtro. Este valor determina el operador y el valor con el cual se construirá la condición SQL.
$filtro (array): Array asociativo que contiene los filtros que se aplicarán. Este array debe tener la estructura:
[
'campo_filtro1' => [
'operador' => '=', // operador SQL
'valor' => 'valor1', // valor a filtrar
],
'campo_filtro2' => [
'operador' => '>', // operador SQL
'valor' => 'valor2', // valor a filtrar
],
...
]
Retorna
- string|array: Retorna una cadena SQL que representa la condición de filtro construida, o un array en caso de que ocurra un error.
Explicación Detallada
-
Validación de Datos:
-
- La función comienza validando los datos recibidos a través de la función valida_campo_filtro. Si esta función detecta algún error, la ejecución se detiene y se devuelve un array con el mensaje de error utilizando la función error.
-
Construcción de la Cadena SQL:
-
- Si la validación es exitosa, la función construye y devuelve una cadena SQL utilizando el campo, el operador y el valor especificados en $filtro.
Ejemplos
$campo = 'nombre';
$campo_filtro = 'nombre_filtro';
$filtro = [
'nombre_filtro' => [
'operador' => '=',
'valor' => 'Juan',
]
];
$sql = $this->data_sql_campo($campo, $campo_filtro, $filtro);
// Resultado esperado: "'nombre'='Juan'"
Código de la Función
private function data_sql_campo(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'];
}