PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]); } return $pdo; } function enforceChannelLimit($channel_id) { $stmt = db()->prepare("SELECT message_limit FROM channels WHERE id = ?"); $stmt->execute([$channel_id]); $channel = $stmt->fetch(); if ($channel && !empty($channel['message_limit'])) { $limit = (int)$channel['message_limit']; // Delete oldest messages that exceed the limit $stmt = db()->prepare(" DELETE FROM messages WHERE channel_id = ? AND id NOT IN ( SELECT id FROM ( SELECT id FROM messages WHERE channel_id = ? ORDER BY created_at DESC, id DESC LIMIT " . $limit . " ) as tmp ) "); $stmt->execute([$channel_id, $channel_id]); } }