You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.2 KiB
78 lines
2.2 KiB
1 month ago
|
<?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 RunDelete(DeleteInterface $queryBuilder): bool
|
||
|
{
|
||
|
$sth = $this->pdo->prepare($queryBuilder->getStatement());
|
||
|
return $sth->execute($queryBuilder->getBindValues());
|
||
|
}
|
||
|
}
|