pdo = $pdo; } public function lastInsertId(): string { return $this->pdo->lastInsertId(); } /** * execute a request * @param string $query * @param array> $args * @return void */ public function exec(string $query, array $args) { $stmnt = $this->prep($query, $args); $stmnt->execute(); } /** * Execute a request, and return the returned rows * @param string $query the SQL request * @param array> $args an array containing the arguments label, value and type: ex: `[":label" => [$value, PDO::PARAM_TYPE]` * @return array[] the returned rows of the request */ public function fetch(string $query, array $args): array { $stmnt = $this->prep($query, $args); $stmnt->execute(); return $stmnt->fetchAll(PDO::FETCH_ASSOC); } /** * @param string $query * @param array> $args * @return \PDOStatement */ private function prep(string $query, array $args): \PDOStatement { $stmnt = $this->pdo->prepare($query); foreach ($args as $name => $value) { $stmnt->bindValue($name, $value[0], $value[1]); } return $stmnt; } public function prepare(string $query): \PDOStatement { return $this->pdo->prepare($query); } }