Problemas banco de dados inserindo 3 vezes em vez de apenas uma no php

Galera, tudo bem? Espero que todos estejam bem!

Tenho esse codigo aqui:

<?php

include './../app/Libraries/Database.php';

$db = new Database;

$usuarioId = 10;

$titulo = 'Titulo do post 321';

$texto = 'Texto do post 230';

$db->add("INSERT INTO posts (usuario_id, titulo, texto) VALUES (:usuario_id, :titulo, :texto )");

$db->bind(":usuario_id", $usuarioId);

$db->bind(":titulo", $titulo);

$db->bind(":texto",$texto);

$db->executa();

echo '<hr>Total Resultado: '.$db->totalResultados();

echo '<hr>Último id: '.$db->ultimoIdInserido();

echo '<hr>';

?>

e esse aqui referente a conexao com o BD:
<?php

class Database{

    private $host = 'localhost';

    private $usuario = 'root';

    private $senha = '';

    private $banco = 'framework';

    /* private $porta = '3306'; */

    private $dbh;

    private $stmt;

    public function __construct()

    {

        $this->getConnection();

        

    }

    public function getConnection(){

        $dsn = 'mysql:host='.$this->host.';dbname='.$this->banco;

        $opcoes = [

            PDO::ATTR_PERSISTENT => true,

            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION

        ];

        try

        {

            $this->dbh = new PDO($dsn, $this->usuario, $this->senha, $opcoes);      

            echo 'get connection<hr>';

        } catch (PDOException $e) {

            print "Error!: " . $e->getMessage() . "<br/>";

            die();

        }

    }

    public function add($sql){

        $this->stmt = $this->dbh->prepare($sql);

        

    }

    public function bind($parametro, $valor, $tipo = null){

        if(is_null($tipo)){

            switch(true):

                case is_int($valor):

                    $tipo = PDO::PARAM_INT;

                break;

                case is_bool($valor):

                    $tipo = PDO::PARAM_BOOL;

                break;

                case is_null($valor):

                    $tipo = PDO::PARAM_NULL;

                break;

                default:

                $tipo = PDO::PARAM_STR;

            endswitch;

        }

        $this->stmt->bindValue($parametro, $valor, $tipo);

    }

    public function executa(){

        return $this->stmt->execute();

    }

    public function resultado(){

        $this->executa();

        return $this->stmt->fetch(PDO::FETCH_OBJ);

    }

    public function resultados(){

        $this->executa();

        return $this->stmt->fetchAll(PDO::FETCH_OBJ);

    }

    public function totalResultados(){

        return $this->stmt->rowCount();

    }

    public function ultimoIdInserido(){

        return $this->dbh->lastInsertId();

    }

    

}

Toda vez que eu atualizo a pagina, ele aumenta mais 3 linhas na tabela do banco, sendo que era para ser apenas uma. Ja revirei todo o codigo e nao consigo achar o problema, alguem pode me ajudar?