diff options
| author | winter | 2025-01-14 18:13:57 +0000 |
|---|---|---|
| committer | winter | 2025-01-14 18:13:57 +0000 |
| commit | 25b748f04911262826d0a0bc9609e03ee47c3232 (patch) | |
| tree | 35dc82bd0cb1798913f726fb6bb74be97e5b83ba /Digitigrade/Model.php | |
| parent | 2082bfe9a378a90b33d4ab5c05dbb19a3457bef6 (diff) | |
add interaction counters
Diffstat (limited to 'Digitigrade/Model.php')
| -rw-r--r-- | Digitigrade/Model.php | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Digitigrade/Model.php b/Digitigrade/Model.php index 4a206a6..be664cb 100644 --- a/Digitigrade/Model.php +++ b/Digitigrade/Model.php @@ -183,6 +183,22 @@ abstract class Model { return static::findAllWhere('1 = 1', []); } + public static function countWhere(string $whereClause, array $parameters): int { + $classNameParts = explode('\\', static::class); + $className = $classNameParts[count($classNameParts) - 1]; + $tableName = self::mangleName($className); + + $query = "SELECT count(*) FROM $tableName WHERE $whereClause"; + $stmt = Db::getInstance()->getPdo()->prepare($query); + $stmt->execute($parameters); + return $stmt->fetchColumn(0); + } + + public static function count(): int { + // FIXME + return static::countWhere('1 = 1', []); + } + public static function find(int $id): ?static { return static::findWhere('id = ?', [$id]); } |
