2
respostas

PHP - SQLSTATE[HY093]: Invalid parameter number: parameter was not defined

O seguinte erro acima esta retornando ao tentar efetuar um cadastro, já chequei que todos os campos existem tanto no banco quanto no form

<?php
require_once 'dbconfig.php';


if($_POST){
    $emp_matricula = $_POST['matricula'];
    $emp_nome = $_POST['nome'];
    $emp_cpf = $_POST['cpf'];
    $emp_email = $_POST['email'];
    $emp_telefone = $_POST['tel'];
    $emp_escolaLotacao =$_POST['escolaLotacao'];
    $emp_dataInscricao = date("d/m/Y H:i:s");
//    $emp_status = $_POST['status'];
//    $emp_curso = $_POST['curso'];

    try{

        $stmt = $db_con->prepare("INSERT INTO candidatos(matricula,nome,cpf,email,escolaLotacao,dataInscricao) VALUES(:ematricula, :enome, :ecpf, :eemail, :etel, :eescolaLotacao, :edataIncricao)");
        $stmt->bindParam(":ematricula", $emp_matricula);
        $stmt->bindParam(":enome", $emp_nome);
        $stmt->bindParam(":ecpf", $emp_cpf);
        $stmt->bindParam(":eemail", $emp_email);
        $stmt->bindParam(":etel", $emp_telefone);
        $stmt->bindParam(":eescolaLotacao", $emp_escolaLotacao);
        $stmt->bindParam(":edataInscricao", $emp_dataInscricao);
//        $stmt->bindParam(":estatus", $emp_status);
//        $stmt->bindParam(":ecurso", $emp_curso);
        if($stmt->execute())
        {
            echo "<script>alert('Obrigado! Logo entraremos em contato com uma oferta exclusiva!');</script>";
        }
        else{
            echo ":-( Ocorreu um problema!";
        }
    }
    catch(PDOException $e){
        echo $e->getMessage();
    }
}

?>

Poderiam me ajudar?

2 respostas

Boa tarde Miquellysson

Na sua query você passa 6 parametros das colunas mas no values passa 7 valores:

        $stmt = $db_con->prepare("INSERT INTO candidatos(matricula,nome,cpf,email,escolaLotacao,dataInscricao) VALUES(:ematricula, :enome, :ecpf, :eemail, :etel, :eescolaLotacao, :edataIncricao)");

corrigir, mas o erro persiste


if($_POST){
    $emp_matricula = $_POST['matricula'];
    $emp_nome = $_POST['nome'];
    $emp_cpf = $_POST['cpf'];
    $emp_email = $_POST['email'];
    $emp_telefone = $_POST['tel'];
    $emp_escolaLotacao = $_POST['escolaLotacao'];
    $emp_dataInscricao = date("d/m/Y H:i:s");
//    $emp_status = $_POST['status'];
//    $emp_curso = $_POST['curso'];

    try{

        $stmt = $db_con->prepare("INSERT INTO candidatos(matricula,nome,cpf,email,escolaLotacao,telefone,dataInscricao) 
        VALUES(:ematricula, :enome, :ecpf, :eemail, :etelefone, :eescolaLotacao, :edataIncricao)");
        $stmt->bindParam(":ematricula", $emp_matricula);
        $stmt->bindParam(":enome", $emp_nome);
        $stmt->bindParam(":ecpf", $emp_cpf);
        $stmt->bindParam(":eemail", $emp_email);
        $stmt->bindParam(":etelefone", $emp_telefone);
        $stmt->bindParam(":eescolaLotacao", $emp_escolaLotacao);
        $stmt->bindParam(":edataInscricao", $emp_dataInscricao);