mirror of
https://github.com/myronblair/jarvis
synced 2026-06-30 17:50:23 -05:00
dc55e6c45b
- 4-tier chat: HA control → Ollama → Groq → Claude - Push-based agent system with heartbeat/metrics - Network monitoring, alerts, Proxmox, Home Assistant - Windows + Linux agent installers - Stats cache cron, facts collector, KB engine
41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?php
|
|
class JarvisDB {
|
|
private static ?PDO $pdo = null;
|
|
|
|
public static function get(): PDO {
|
|
if (self::$pdo === null) {
|
|
self::$pdo = new PDO(
|
|
'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=utf8mb4',
|
|
DB_USER, DB_PASS,
|
|
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
|
PDO::ATTR_EMULATE_PREPARES => false]
|
|
);
|
|
}
|
|
return self::$pdo;
|
|
}
|
|
|
|
public static function query(string $sql, array $params = []): array {
|
|
$stmt = self::get()->prepare($sql);
|
|
$stmt->execute($params);
|
|
return $stmt->fetchAll();
|
|
}
|
|
|
|
public static function execute(string $sql, array $params = []): int {
|
|
$stmt = self::get()->prepare($sql);
|
|
$stmt->execute($params);
|
|
return $stmt->rowCount();
|
|
}
|
|
|
|
public static function single(string $sql, array $params = []): ?array {
|
|
$rows = self::query($sql, $params);
|
|
return $rows[0] ?? null;
|
|
}
|
|
|
|
public static function insert(string $sql, array $params = []): int {
|
|
$stmt = self::get()->prepare($sql);
|
|
$stmt->execute($params);
|
|
return (int)self::get()->lastInsertId();
|
|
}
|
|
}
|