|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Wrappers;
|
|
|
|
|
|
|
|
use App\API\Models\_DatabaseRecordPermissionSet;
|
|
|
|
use App\API\Models\EnumeratorDetails;
|
|
|
|
use App\API\Models\UserDetails;
|
|
|
|
use App\Configuration;
|
|
|
|
use Aura\SqlQuery\Common\DeleteInterface;
|
|
|
|
use Aura\SqlQuery\Common\InsertInterface;
|
|
|
|
use Aura\SqlQuery\Common\SelectInterface;
|
|
|
|
use Aura\SqlQuery\Common\UpdateInterface;
|
|
|
|
use Aura\SqlQuery\QueryFactory;
|
|
|
|
use PDO;
|
|
|
|
|
|
|
|
class DatabaseInteractions
|
|
|
|
{
|
|
|
|
private PDO $pdo;
|
|
|
|
|
|
|
|
public function __construct()
|
|
|
|
{
|
|
|
|
$servername = Configuration::GetConfig('MariaDB', 'Host');
|
|
|
|
$database = Configuration::GetConfig('MariaDB', 'Database');
|
|
|
|
$username = Configuration::GetConfig('MariaDB', 'Username');
|
|
|
|
$password = Configuration::GetConfig('MariaDB', 'Password');
|
|
|
|
|
|
|
|
$this->pdo = new PDO(
|
|
|
|
"mysql:host=$servername;dbname=$database", $username, $password
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function ScheduleRowForDeletion(string $tableName, string $id)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function RunSelect(SelectInterface $queryBuilder): array
|
|
|
|
{
|
|
|
|
$sth = $this->pdo->prepare($queryBuilder->getStatement());
|
|
|
|
$sth->execute($queryBuilder->getBindValues());
|
|
|
|
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function RunOneSelect(SelectInterface $queryBuilder): array
|
|
|
|
{
|
|
|
|
$sth = $this->pdo->prepare($queryBuilder->getStatement());
|
|
|
|
$sth->execute($queryBuilder->getBindValues());
|
|
|
|
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
if(sizeof($result) == 1) return $result[0];
|
|
|
|
|
|
|
|
echo "invalid single row db response";
|
|
|
|
die();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function UpdateSingleField(UpdateInterface $queryBuilder): void
|
|
|
|
{
|
|
|
|
$sth = $this->pdo->prepare($queryBuilder->getStatement());
|
|
|
|
$sth->execute($queryBuilder->getBindValues());
|
|
|
|
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function RunInsert(InsertInterface $queryBuilder): bool
|
|
|
|
{
|
|
|
|
$sth = $this->pdo->prepare($queryBuilder->getStatement());
|
|
|
|
return $sth->execute($queryBuilder->getBindValues());
|
|
|
|
}
|
|
|
|
public function RunUpdate(UpdateInterface $queryBuilder): bool
|
|
|
|
{
|
|
|
|
$sth = $this->pdo->prepare($queryBuilder->getStatement());
|
|
|
|
return $sth->execute($queryBuilder->getBindValues());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function RunDelete(DeleteInterface $queryBuilder): bool
|
|
|
|
{
|
|
|
|
$sth = $this->pdo->prepare($queryBuilder->getStatement());
|
|
|
|
return $sth->execute($queryBuilder->getBindValues());
|
|
|
|
}
|
|
|
|
}
|