<?php

class clsbdd {

    private $mysqli;
    private $campos;
    private $valores;

    public function __construct() {
        // ruta correcta al config
        require_once __DIR__ . '/config.php';

        $this->mysqli = new mysqli($host, $user, $password, $db);
        $this->ejecutar("SET time_zone = '-05:00'");
        if ($this->mysqli->connect_error) {
            die("Error conexión BD");
        }

        $this->mysqli->set_charset("utf8");
    }

    /* =========================
       SEGURIDAD
    ==========================*/
    public function escapar($valor) {
        return $this->mysqli->real_escape_string($valor);
    }

    /* =========================
       SELECT
    ==========================*/
    public function ejecutar($sql) {
        return $this->mysqli->query($sql);
    }

    public function ejecutar_array($sql) {
        $resultado = $this->mysqli->query($sql);

        if (!$resultado) {
            return [];
        }

        $data = [];
        while ($fila = $resultado->fetch_assoc()) {
            $data[] = $fila;
        }
        return $data;
    }
    /* =========================
   SELECT UNA FILA
    ==========================*/
    public function ejecutar_fila($sql) {
        $resultado = $this->mysqli->query($sql);
        if (!$resultado) return null;
        return $resultado->fetch_assoc();
    }


    /* =========================
       INSERT
    ==========================*/
    public function carga_campos($campos) {
        $this->campos = $campos;
    }

    public function carga_valores($valores) {
        $this->valores = $valores;
    }

    public function insertar($tabla) {
        $sql = "INSERT INTO $tabla ($this->campos) VALUES ($this->valores)";
        if ($this->mysqli->query($sql)) {
            return $this->mysqli->insert_id;
        }
        return 0;
    }

    /* =========================
       UPDATE
    ==========================*/
    public function actualizar($tabla) {
        $sql = "UPDATE $tabla SET $this->campos WHERE $this->valores";
        return $this->mysqli->query($sql) ? 1 : 0;
    }
}
