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 un WHERE o un OR.

  • string $value:
    El valor que se compara contra el campo en la sentencia SQL.

  • string $where:
    La cláusula WHERE existente que se está construyendo. Si no se proporciona o está vacía, se inicializa como ' WHERE '.

Retorno

  • array|stdClass:
    Retorna un objeto stdClass que contiene:

    • where: La cláusula WHERE 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

  1. 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.
  2. Inicialización de la cláusula WHERE:

    • Si $where está vacío, se asigna el valor ' WHERE ' para iniciar la cláusula.
  3. 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.
  4. Creación del objeto stdClass:

    • La función crea un objeto stdClass y asigna las propiedades where y sentencia con los valores generados.
  5. Retorno del objeto:

    • La función retorna el objeto stdClass que contiene la cláusula WHERE y la sentencia SQL completa.

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;
    }