4 Commits

2 changed files with 26 additions and 5 deletions

View File

@ -9,5 +9,6 @@ interface ResultSet
public function execute(array $values): ResultSet; public function execute(array $values): ResultSet;
public function getAsArray(): array; public function getAsArray(): array;
public function getAsObject(): array; public function getAsObject(): array;
public function getFirst(): mixed; public function getFirstAsArray(): array;
public function getFirstAsObject(): object;
} }

View File

@ -31,14 +31,34 @@ class ResultSet implements RSInterface
public function getAsArray(): array public function getAsArray(): array
{ {
return $this->getStatement()->fetchAll(PDO::FETCH_ASSOC); $rs = $this->getStatement()->fetchAll(PDO::FETCH_ASSOC);
if (!$rs) {
throw new \PDOException("No results found.");
}
return $rs;
} }
public function getAsObject(): array public function getAsObject(): array
{ {
return $this->getStatement()->fetchAll(PDO::FETCH_OBJ); $rs = $this->getStatement()->fetchAll(PDO::FETCH_OBJ);
if (!$rs) {
throw new \PDOException("No results found.");
}
return $rs;
} }
public function getFirst(): mixed public function getFirstAsArray(): array
{ {
return $this->getStatement()->fetch(PDO::FETCH_OBJ); $rs = $this->getStatement()->fetch(PDO::FETCH_ASSOC);
if (!$rs or count($rs) === 0) {
throw new \PDOException("No results found.");
}
return $rs;
}
public function getFirstAsObject(): object
{
$rs = $this->getStatement()->fetch(PDO::FETCH_OBJ);
if (!$rs or count($rs) === 0) {
throw new \PDOException("No results found.");
}
return $rs;
} }
} }