Reorder and Added missing databases

This commit is contained in:
2023-02-28 23:41:51 -03:00
parent a326904825
commit 99344fda7d
17 changed files with 260 additions and 251 deletions

View File

@ -3,10 +3,10 @@ namespace ProVM\Database;
use PDO;
use PDOStatement;
use ProVM\Concept\Database\ResultSet as RSInterface;
use ProVM\Exception\BlankResult;
use ProVM\Concept\Database;
use ProVM\Exception\Database\BlankResult;
class ResultSet implements RSInterface
class ResultSet implements Database\ResultSet
{
public function __construct(PDOStatement $statement)
{
@ -14,52 +14,44 @@ class ResultSet implements RSInterface
}
protected PDOStatement $statement;
public function setStatement(PDOStatement $statement): RSInterface
protected function getStatement(): PDOStatement
{
return $this->statement;
}
protected function setStatement(PDOStatement $statement): ResultSet
{
$this->statement = $statement;
return $this;
}
public function getStatement(): PDOStatement
{
return $this->statement;
}
public function execute(array $values): RSInterface
public function execute(array $data): Database\ResultSet
{
$this->getStatement()->execute($values);
$this->statement->execute($data);
return $this;
}
public function getAsArray(): array
protected function checkResults(): PDOStatement
{
$rs = $this->getStatement()->fetchAll(PDO::FETCH_ASSOC);
if (!$rs) {
throw new BlankResult();
if ($this->getStatement()->rowCount() === 0) {
throw new BlankResult(query: $this->getStatement()->queryString);
}
return $rs;
return $this->getStatement();
}
public function getAsObject(): array
public function fetchFirst(): array
{
$rs = $this->getStatement()->fetchAll(PDO::FETCH_OBJ);
if (!$rs) {
throw new BlankResult();
}
return $rs;
return $this->checkResults()->fetch(PDO::FETCH_ASSOC);
}
public function getFirstAsArray(): array
public function fetchAll(): array
{
$rs = $this->getStatement()->fetch(PDO::FETCH_ASSOC);
if (!$rs or count($rs) === 0) {
throw new BlankResult();
}
return $rs;
return $this->checkResults()->fetchAll(PDO::FETCH_ASSOC);
}
public function getFirstAsObject(): object
public function fetchFirstAsObject(): object
{
$rs = $this->getStatement()->fetch(PDO::FETCH_OBJ);
if (!$rs or count($rs) === 0) {
throw new BlankResult();
}
return $rs;
return $this->checkResults()->fetch(PDO::FETCH_OBJ);
}
public function fetchAllAsObjects(): array
{
return $this->checkResults()->fetchAll(PDO::FETCH_OBJ);
}
}