<?php
$host = 'localhost';
$db = 'digupdog_FEED';
$user = 'digupdog_FEEDadmin';
$pass = 'Raimundinho1';

try {
    // Conexão ao banco
    $pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // Obtém o ID da conexão atual
    $currentConnectionId = $pdo->query("SELECT CONNECTION_ID()")->fetchColumn();

    // Loop contínuo para capturar conexões ativas repetidamente
    for ($i = 0; $i < 10; $i++) { // Tenta limpar conexões múltiplas vezes
        $stmt = $pdo->query("SHOW FULL PROCESSLIST");
        $processes = $stmt->fetchAll(PDO::FETCH_ASSOC);

        echo "<h1>Encerrando Conexões (Tentativa $i)</h1>";
        echo "<table border='1'>
                <tr>
                    <th>ID</th>
                    <th>User</th>
                    <th>Host</th>
                    <th>DB</th>
                    <th>Command</th>
                    <th>Time</th>
                    <th>State</th>
                    <th>Info</th>
                    <th>Status</th>
                </tr>";

        $connectionsKilled = 0;

        foreach ($processes as $process) {
            $id = $process['Id'];
            $user = $process['User'];
            $host = $process['Host'];
            $db = $process['db'];
            $command = $process['Command'];
            $time = $process['Time'];
            $state = $process['State'];
            $info = $process['Info'];

            if ($id == $currentConnectionId) {
                $status = "Conexão Atual (Ignorada)";
            } else {
                try {
                    $pdo->exec("KILL $id");
                    $status = "Conexão ID $id encerrada imediatamente";
                    $connectionsKilled++;
                } catch (Exception $e) {
                    $status = "Erro ao encerrar conexão: " . $e->getMessage();
                }
            }

            echo "<tr>
                    <td>$id</td>
                    <td>$user</td>
                    <td>$host</td>
                    <td>$db</td>
                    <td>$command</td>
                    <td>$time</td>
                    <td>$state</td>
                    <td>$info</td>
                    <td>$status</td>
                  </tr>";
        }

        echo "</table>";

        if ($connectionsKilled == 0) {
            echo "<h2>Nenhuma conexão restante para encerrar na tentativa $i.</h2>";
            break;
        }

        // Pausa curta antes de repetir para capturar novas conexões
        sleep(1);
    }

    echo "<h2>Processo concluído com sucesso.</h2>";

} catch (PDOException $e) {
    echo "<p>Erro ao conectar ao banco de dados: " . $e->getMessage() . "</p>";
}
?>
