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 unWHERE
o unOR
. -
string $value
:
El valor que se compara contra el campo en la sentencia SQL. -
string $where
:
La cláusulaWHERE
existente que se está construyendo. Si no se proporciona o está vacía, se inicializa como' WHERE '
.
Retorno
-
array|stdClass
:
Retorna un objetostdClass
que contiene:where
: La cláusulaWHERE
generada 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
$campo
está 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
$where
está 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
stdClass
y asigna las propiedadeswhere
ysentencia
con los valores generados.
- La función crea un objeto
-
Retorno del objeto:
- La función retorna el objeto
stdClass
que contiene la cláusulaWHERE
y 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;
}