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?