Warning: PDOStatement :: execute (): SQLSTATE [HY093] [duplicate]

1

Good Night!

I'm setting up a CRUD, I picked up some codes on the Internet and adapted to my need, everything was running perfectly fine, but when I got to the UPDATE part the application presented me with the following error: Warning: PDOStatement :: execute (): SQLSTATE [HY093].

I would like your help to solve my problem.

Follow Code:

<?php

 $id=isset($_GET['id']) ? $_GET['id'] : die('ERROR: ID não encontrado.');

 include 'config/database.php';

 if($_POST){

     try{

     $query = "UPDATE alunos SET nome=:nome, responsavel=:responsavel, telefone=:telefone, ensino=:ensino, serie=:serie, visita=:visita, entrevista=:entrevista, teste_data=:teste_data, teste_result=:teste_result, matricula=:matricula, data_matricula=:data_matricula, observacao=:observacao WHERE id = :id";

     $stmt = $con->prepare($query);

     $nome=htmlspecialchars(strip_tags($_POST['nome']));
     $responsavel=htmlspecialchars(strip_tags($_POST['responsavel']));
     $telefone=htmlspecialchars(strip_tags($_POST['telefone']));
     $ensino=htmlspecialchars(strip_tags($_POST['ensino']));
     $serie=htmlspecialchars(strip_tags($_POST['serie']));
     $visita=htmlspecialchars(strip_tags($_POST['visita']));
     $entrevista=htmlspecialchars(strip_tags($_POST['entrevista']));
     $teste_data=htmlspecialchars(strip_tags($_POST['teste_data']));
     $teste_result=htmlspecialchars(strip_tags($_POST['teste_result']));
     $matricula=htmlspecialchars(strip_tags($_POST['matricula']));
     $data_matricula=htmlspecialchars(strip_tags($_POST['data_matricula']));
     $observacao=htmlspecialchars(strip_tags($_POST['observacao']));

     $visita=date("Y-m-d",strtotime(str_replace('/','-',$visita)));
     $entrevista=date("Y-m-d",strtotime(str_replace('/','-',$entrevista)));
     $teste_data=date("Y-m-d",strtotime(str_replace('/','-',$teste_data)));
     $data_matricula=date("Y-m-d",strtotime(str_replace('/','-',$matricula)));    

     $stmt->bindParam(':nome', $nome);
     $stmt->bindParam(':responsavel', $responsavel);
     $stmt->bindParam(':telefone', $telefone);
     $stmt->bindParam(':ensino', $ensino);
     $stmt->bindParam(':serie', $serie);
     $stmt->bindParam(':visita', $visita);
     $stmt->bindParam(':entrevista', $entrevista);
     $stmt->bindParam(':teste_data', $teste_data);
     $stmt->bindParam(':teste_result', $teste_result);
     $stmt->bindParam(':matricula', $matricula);
     $stmt->bindParam(':data_matricula', $data_matricula);
     $stmt->bindParam(':observacao', $observacao);

     if($stmt->execute()){
         echo "<div class='alert alert-success'>Atualização realizado com sucesso.</div>";
        }else{
         echo "<div class='alert alert-danger'>Não foi possível atualizar o registro. Por favor, tente novamente.</div>";
     }

     }

 catch(PDOException $exception){
     die('ERROR: ' . $exception->getMessage());
 }
 }?>

Thanks in advance for the help.

    
asked by anonymous 12.12.2016 / 23:04

1 answer

0

You have missed the Where ID.

$stmt->bindParam(':observacao', $observacao);
$stmt->bindParam(':id', $_GET['id']);
    
12.12.2016 / 23:51