File manager - Edit - /home/verseaumee/quaadraa/app/Models/Database.php
Back
<?php namespace App\Models; use PDO; use PDOException; class Database { private static ?PDO $instance = null; public static function getInstance(): PDO { if (self::$instance === null) { $config = require dirname(__DIR__, 2) . '/config.php'; $db = $config['database']; $dsn = "mysql:host={$db['host']};port={$db['port']};dbname={$db['name']};charset=utf8mb4"; try { self::$instance = new PDO($dsn, $db['user'], $db['pass'], [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => true, // ← CORRIGÉ : permet les params dupliqués + LIMIT ]); } catch (PDOException $e) { error_log('[QUAADRA DB] ' . $e->getMessage()); http_response_code(503); die('Service temporairement indisponible. Veuillez réessayer plus tard.'); } } return self::$instance; } public static function query(string $sql, array $params = []): \PDOStatement { $stmt = self::getInstance()->prepare($sql); $stmt->execute($params); return $stmt; } public static function fetchOne(string $sql, array $params = []): array|false { return self::query($sql, $params)->fetch(); } public static function fetchAll(string $sql, array $params = []): array { return self::query($sql, $params)->fetchAll(); } public static function insert(string $sql, array $params = []): int { self::query($sql, $params); return (int) self::getInstance()->lastInsertId(); } public static function execute(string $sql, array $params = []): int { return self::query($sql, $params)->rowCount(); } }
| ver. 1.4 |
Github
|
.
| PHP 8.5.7 | Generation time: 0 |
proxy
|
phpinfo
|
Settings