Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá!
Faço Ciência da Computação e estudei o diagrama de classes.
Criei o diagrama e gostaria de utilizar um ORM junto, porém já utilizei o doctrine e não gostei muito não
então resolvi criar minhas classes e adicionar metodos para facilitar minha vida.
No banco de dados resolvi utilizar um PDO, porém estou tendo um problema.
Quando faço um ->save(), verifico se o id existe, caso exista, então update, caso contrário, inclua.
O update funciona perfeitamente
agora toda vez que chamo o insert, ele insere dois valores e isso não faz sentido oO
o código é esse:
function Save()
{
$sql = "SELECT COUNT(id) FROM modulo WHERE id = " . $this->id;
$rows = $this->con->prepare($sql);
$rows->execute();
//count the rows
$count = $rows->fetchColumn();
if ($count > 0)
{
$this->con->query("update `modulo` set
`curso`='".$this->curso."',
`nome`='".$this->nome."',
`ordem`='".$this->ordem."' where `id`='".$this->id."'");
}
else
{
$new = "insert into `modulo` (`curso`, `nome`, `ordem` ) values ('".$this->curso."','".$this->nome."','".$this->ordem."' )";
$this->con->query($new); // Aqui está inserindo duas vezes!!!!!
}
$insertId = $this->con->lastInsertId();
if ($this->id == "")
{
$this->id = $insertId;
}
return $this->id;
}
Por que isso acontece?
estou chamando esse método apenas uma vez.
e não existe nenhuma estrutura de repetição.
Por que está incluindo duas vezes ? oO
Bem desde já agradeço
Carregando comentários...