aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/app/src/Sql/QueryBuilder.php
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-03-09 11:04:51 +0900
committernsfisis <nsfisis@gmail.com>2024-03-09 14:07:27 +0900
commite014d9778f739956104caf686c70639914045281 (patch)
treeeccd80968b787e88d239644be8d21ce8ecec2c4c /services/app/src/Sql/QueryBuilder.php
parent8eaa76b2364b64ba32b10263f36404b472e10a28 (diff)
downloadphperkaigi-2024-albatross-e014d9778f739956104caf686c70639914045281.tar.gz
phperkaigi-2024-albatross-e014d9778f739956104caf686c70639914045281.tar.zst
phperkaigi-2024-albatross-e014d9778f739956104caf686c70639914045281.zip
add /admin/stats/
Diffstat (limited to 'services/app/src/Sql/QueryBuilder.php')
-rw-r--r--services/app/src/Sql/QueryBuilder.php13
1 files changed, 11 insertions, 2 deletions
diff --git a/services/app/src/Sql/QueryBuilder.php b/services/app/src/Sql/QueryBuilder.php
index 3a5443b..f6aee00 100644
--- a/services/app/src/Sql/QueryBuilder.php
+++ b/services/app/src/Sql/QueryBuilder.php
@@ -27,7 +27,7 @@ final class QueryBuilder
) {
}
- public function select(string $table): Select
+ public function select(string|Select $table): Select
{
return new Select($this, $table);
}
@@ -57,6 +57,11 @@ final class QueryBuilder
$this->conn->exec($sql);
}
+ public function raw(string $sql): void
+ {
+ $this->conn->exec($sql);
+ }
+
/**
* @internal
* @param Select $select
@@ -87,7 +92,11 @@ final class QueryBuilder
return "SELECT " .
implode(', ', $fields) .
- " FROM $table" .
+ (
+ $table instanceof Select
+ ? " FROM (" . $this->compileSelect($table) . ")"
+ : " FROM $table"
+ ) .
($join !== null ? " $join->type $join->table ON $join->on" : '') .
($where !== '' ? " WHERE $where" : '') .
(