administrador.base.orm.modelo.data_sentencia - gamboamartin/administrador GitHub Wiki
data_sentencia
La función data_sentencia es una función privada que construye una sentencia SQL WHERE o OR y organiza los datos asociados en un objeto stdClass. La función valida los parámetros de entrada, genera la sentencia SQL correspondiente y asegura que el resultado esté correctamente estructurado.
Signatura
private function data_sentencia(string $campo, string $sentencia, string $value, string $where): array|stdClass
Parámetros
-
string $campo:
El nombre del campo de la base de datos que se utilizará en la sentencia SQL. -
string $sentencia:
La sentencia SQL que se está construyendo, que puede ser parte de unWHEREo unOR. -
string $value:
El valor que se compara contra el campo en la sentencia SQL. -
string $where:
La cláusulaWHEREexistente que se está construyendo. Si no se proporciona o está vacía, se inicializa como' WHERE '.
Retorno
-
array|stdClass:
Retorna un objetostdClassque contiene:where: La cláusulaWHEREgenerada o ajustada.sentencia: La sentencia SQL completa generada.
En caso de error, retorna un array de error generado por
$this->error->error().
Explicación Detallada
-
Validación del campo:
- La función utiliza
trim()para eliminar espacios en blanco al inicio y al final del parámetro$campo. - Si
$campoestá vacío después de la limpieza, se genera un mensaje de error y se retorna un array con el mensaje de error.
- La función utiliza
-
Inicialización de la cláusula
WHERE:- Si
$whereestá vacío, se asigna el valor' WHERE 'para iniciar la cláusula.
- Si
-
Generación de la sentencia SQL:
- La función llama a
sentencia_or()para construir la sentencia SQL utilizando los parámetros$campo,$sentencia, y$value. - Si ocurre un error durante la generación de la sentencia, se genera un mensaje de error y se retorna un array con el mensaje de error.
- La función llama a
-
Creación del objeto
stdClass:- La función crea un objeto
stdClassy asigna las propiedadeswhereysentenciacon los valores generados.
- La función crea un objeto
-
Retorno del objeto:
- La función retorna el objeto
stdClassque contiene la cláusulaWHEREy la sentencia SQL completa.
- La función retorna el objeto
Ejemplos
$campo = 'nombre';
$sentencia = 'LIKE';
$value = '%John%';
$where = '';
$resultado = $this->data_sentencia($campo, $sentencia, $value, $where);
// Resultado esperado:
// Un objeto stdClass con las propiedades `where` y `sentencia`, que contiene la cláusula WHERE y la sentencia SQL generada.
Código de la Función
private function data_sentencia(string $campo, string $sentencia, string $value, string $where): array|stdClass
{
$campo = trim($campo);
if($campo === ''){
return $this->error->error(mensaje: 'Error el campo esta vacio',data: $campo, es_final: true);
}
if($where === ''){
$where = ' WHERE ';
}
$sentencia_env = $this->sentencia_or(campo: $campo, sentencia: $sentencia, value: $value);
if(errores::$error){
return $this->error->error(mensaje:'Error al ejecutar sql',data:$sentencia_env);
}
$data = new stdClass();
$data->where = $where;
$data->sentencia = $sentencia_env;
return $data;
}