<?php

namespace BancaDati;

class BancaDati {
    private $dbName = "BancaDati";
    private $linkName = "localhost";
    private $user = "root";
    private $pw = "root";

    public $pdo;
    public function __construct() {
        $this->linkDB();
    }
    private function linkDB() {
        try {
            $this->pdo = new \PDO("mysql:dbname=$this->dbName;host=$this->linkName"
                , $this->user
                , $this->pw
                , array(\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION));
        } catch (\PDOException $e) {
            die;
        }
    }
    public function createUUID()
    {
        $data = openssl_random_pseudo_bytes(16);
        $data[6] = chr(ord($data[6]) & 0x0f | 0x40);
        $data[8] = chr(ord($data[8]) & 0x3f | 0x80);
        return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
    }
    public function update(string $table, string $id, array $values){
        $value = "";
        foreach ($values as $col => $v){
            $value .= $col . "=" . $v . ",";
        }
        $value = trim($value, ",");

        $sql = "UPDATE " . $table . " SET " . $value . " WHERE `id` = " . $id . ";";
        try {
            $sth = $this->pdo->prepare($sql);
            $sth->execute();
        }catch (\PDOException $e){
            die;
        }
    }
}