diff options
Diffstat (limited to 'src/web/helpers/database.php')
-rw-r--r-- | src/web/helpers/database.php | 81 |
1 files changed, 54 insertions, 27 deletions
diff --git a/src/web/helpers/database.php b/src/web/helpers/database.php index 132ed81..82c711d 100644 --- a/src/web/helpers/database.php +++ b/src/web/helpers/database.php @@ -1,6 +1,7 @@ <?php /* Copyright (c) 2024 Freya Murphy */ -function __nullify(mixed $val): mixed { +function __nullify(mixed $val): mixed +{ if (!$val) { return NULL; } else { @@ -18,7 +19,8 @@ class DatabaseQuery { private array $param; - function __construct(\PDO $conn) { + function __construct(\PDO $conn) + { $this->conn = $conn; $this->query = ''; @@ -31,7 +33,8 @@ class DatabaseQuery { /// ARBITRARY QUERY /// - public function query(string $query): DatabaseQuery { + public function query(string $query): DatabaseQuery + { $this->query .= $query; return $this; } @@ -40,12 +43,14 @@ class DatabaseQuery { /// SELECT /// - public function select(string $select): DatabaseQuery { + public function select(string $select): DatabaseQuery + { $this->query .= "SELECT $select\n"; return $this; } - public function from(string $from): DatabaseQuery { + public function from(string $from): DatabaseQuery + { $this->query .= "FROM $from\n"; return $this; } @@ -54,7 +59,8 @@ class DatabaseQuery { /// INSERT /// - public function insert_into(string $insert, string ...$columns): DatabaseQuery { + public function insert_into(string $insert, string ...$columns): DatabaseQuery + { $this->query .= "INSERT INTO $insert\n ("; foreach ($columns as $idx => $column) { if ($idx !== 0) { @@ -66,7 +72,8 @@ class DatabaseQuery { return $this; } - public function values(mixed ...$values): DatabaseQuery { + public function values(mixed ...$values): DatabaseQuery + { $this->query .= "VALUES ("; foreach ($values as $idx => $value) { if ($idx !== 0) { @@ -83,7 +90,8 @@ class DatabaseQuery { /// WHERE /// - public function where(string $cond): DatabaseQuery { + public function where(string $cond): DatabaseQuery + { if (!$this->where) { $this->where = TRUE; $this->query .= "WHERE "; @@ -97,7 +105,8 @@ class DatabaseQuery { /** * @param array<mixed> $array */ - public function where_in(string $column, array $array): DatabaseQuery { + public function where_in(string $column, array $array): DatabaseQuery + { if (!$this->where) { $this->where = TRUE; $this->query .= "WHERE "; @@ -116,7 +125,8 @@ class DatabaseQuery { /** * @param array<mixed> $array */ - private function in(array $array): DatabaseQuery { + private function in(array $array): DatabaseQuery + { $in = 'IN ('; foreach ($array as $idx => $item) { if ($idx != 0) { @@ -133,31 +143,36 @@ class DatabaseQuery { /// OPERATORS /// - public function like(mixed $item): DatabaseQuery { + public function like(mixed $item): DatabaseQuery + { $this->query .= "LIKE ?\n"; array_push($this->param, $item); return $this; } - public function eq(mixed $item): DatabaseQuery { + public function eq(mixed $item): DatabaseQuery + { $this->query .= "= ?\n"; array_push($this->param, $item); return $this; } - public function ne(mixed $item): DatabaseQuery { + public function ne(mixed $item): DatabaseQuery + { $this->query .= "<> ?\n"; array_push($this->param, $item); return $this; } - public function lt(mixed $item): DatabaseQuery { + public function lt(mixed $item): DatabaseQuery + { $this->query .= "< ?\n"; array_push($this->param, $item); return $this; } - public function le(mixed $item): DatabaseQuery { + public function le(mixed $item): DatabaseQuery + { $this->query .= "<= ?\n"; array_push($this->param, $item); return $this; @@ -167,7 +182,8 @@ class DatabaseQuery { /// JOINS /// - public function join(string $table, string $on, string $type = 'LEFT'): DatabaseQuery { + public function join(string $table, string $on, string $type = 'LEFT'): DatabaseQuery + { $this->query .= "$type JOIN $table ON $on\n"; return $this; } @@ -176,19 +192,22 @@ class DatabaseQuery { /// LIMIT, OFFSET, ORDER /// - public function limit(int $limit): DatabaseQuery { + public function limit(int $limit): DatabaseQuery + { $this->query .= "LIMIT ?\n"; array_push($this->param, $limit); return $this; } - public function offset(int $offset): DatabaseQuery { + public function offset(int $offset): DatabaseQuery + { $this->query .= "OFFSET ?\n"; array_push($this->param, $offset); return $this; } - public function order_by(string $column, string $order = 'ASC'): DatabaseQuery { + public function order_by(string $column, string $order = 'ASC'): DatabaseQuery + { $this->query .= "ORDER BY " . $column . ' ' . $order . ' '; return $this; } @@ -197,7 +216,8 @@ class DatabaseQuery { /// COLLECT /// - public function rows(mixed ...$params): ?array { + public function rows(mixed ...$params): ?array + { $args = $this->param; foreach ($params as $param) { array_push($args, $param); @@ -213,7 +233,8 @@ class DatabaseQuery { return __nullify($stmt->fetchAll(PDO::FETCH_ASSOC)); } - public function row(mixed ...$params): ?array { + public function row(mixed ...$params): ?array + { $args = $this->param; foreach ($params as $param) { array_push($args, $param); @@ -223,7 +244,8 @@ class DatabaseQuery { return __nullify($stmt->fetch(PDO::FETCH_ASSOC)); } - public function execute(mixed ...$params): bool { + public function execute(mixed ...$params): bool + { $args = $this->param; foreach ($params as $param) { array_push($args, $param); @@ -250,11 +272,13 @@ class DatabaseHelper { private ?\PDO $conn; - function __construct() { + function __construct() + { $this->conn = NULL; } - private function connect(): \PDO { + private function connect(): \PDO + { if ($this->conn === NULL) { $user = getenv("POSTGRES_USER"); $pass = getenv("POSTGRES_PASSWORD"); @@ -275,19 +299,22 @@ class DatabaseHelper { return $this->conn; } - public function select(string $select): DatabaseQuery { + public function select(string $select): DatabaseQuery + { $conn = $this->connect(); $query = new DatabaseQuery($conn); return $query->select($select); } - public function insert_into(string $insert, string ...$columns): DatabaseQuery { + public function insert_into(string $insert, string ...$columns): DatabaseQuery + { $conn = $this->connect(); $query = new DatabaseQuery($conn); return $query->insert_into($insert, ...$columns); } - public function query(string $query_str): DatabaseQuery { + public function query(string $query_str): DatabaseQuery + { $conn = $this->connect(); $query = new DatabaseQuery($conn); return $query->query($query_str); |