When adding user, always gives ERROR but ends up adding

0

Well, I have a problem that is as follows: in a form to add the user I fill in everything and add the user, but the message appears:

  

ERROR: "Try Again".

How can it add the user but display an error message. I leave here the code php with connection to mysql :

    <?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
    {   
header('location:index.php');
}
else{
if(isset($_POST['add']))
{
$nomeutente=$_POST['NomeUtente'];
$pessoaref=$_POST['PessoaRef']; 
$responsavel=$_POST['Responsavel'];   
$nrutente=$_POST['NrUtente']; 
$telemovel=$_POST['TelemovelContact'];  
$telefone=$_POST['TelefoneContact'];  
$datanascimento=$_POST['DataNascimento'];  
$nridcivil=$_POST['NrIdCivil'];  
$nacionalidadeutente=$_POST['NacionalidadeUten'];  
$nrsaude=$_POST['NrUtenSaude']; 
$sql="INSERT INTO tblutentes(NomeUtente, PessoaRef, Responsavel, NrUtente, TelemovelContact, TelefoneContact, DataNascimento,NrIdCivil, NacionalidadeUten, NrUtenSaude) VALUES(:nomeutente, :pessoaref ,:responsavel, :nrutente, :telemovel, :telefone, :datanascimento, :nridcivil, :nacionalidadeutente, :nrsaude)";
$query = $dbh->prepare($sql);
$query->bindParam(':nomeutente',$nomeutente,PDO::PARAM_STR);
$query->bindParam(':pessoaref',$pessoaref,PDO::PARAM_STR);
$query->bindParam(':responsavel',$responsavel,PDO::PARAM_STR);
$query->bindParam(':nrutente',$nrutente,PDO::PARAM_STR);
$query->bindParam(':telemovel',$telemovel,PDO::PARAM_STR);
$query->bindParam(':telefone',$telefone,PDO::PARAM_STR);
$query->bindParam(':datanascimento',$datanascimento,PDO::PARAM_STR);
$query->bindParam(':nridcivil',$nridcivil,PDO::PARAM_STR);
$query->bindParam(':nacionalidadeutente',$nacionalidadeutente,PDO::PARAM_STR);
$query->bindParam(':nrsaude',$nrsaude,PDO::PARAM_STR);
$lastInsertId = $dbh->lastInsertId();
$query->execute();

if($lastInsertId)
{
$msg="Utente Adicionado Com Sucesso!";
}
else 
{
$error="Erro, tente novamente!";
}}
?>
    
asked by anonymous 09.09.2018 / 12:27

1 answer

1

You need to reverse the order, because if you have not yet executed the query, you have had no changes.

Also, you may need commit depending on how you are using it.

Example:

...
$query->execute();
$lastInsertId = $dbh->lastInsertId();
$dbh->commit(); # caso necessário
    
09.09.2018 / 15:12