Warning: Pdostatement::execute(): SQLSTATE[HY093]: Invalid Parameter number: Parameter was not defined in

Asked

Viewed 30 times

0

I know what the error is. It says that the number of parameters is not equal to the number of variables. I just can’t find where the error is.

If anyone can see something I didn’t see, I’m grateful ;D

P.S. I know there’s an equal question, but I want to know where my mistake is, that everywhere I looked, I was right

    function editaLocalidade($IDLocalidade,$CNPJ, $inscMunicipal, $inscEstadual,$dataFundacao, $nomeLocalidade, $EndLogradouro, $EndComplemento,
                         $EndCep, $EndBairro, $EndCidade, $EndEstado,$telComercial1,$telComercial2,$notas,$_AtualizacaoUsuario ){
    $query = "UPDATE tbl_EmpresasLocalidades SET CNPJ=:CNPJ, InscMunicipal=:InscMunicipal, InscEstadual=:InscEstadual, DataFundacao=:DataFundacao,
        NomeLocalidade=:NomeLocalidade, EndLogradouro=:EndLogradouro, EndComplemento=:EndComplemento, EndCep=:EndCep,EndBairro=:EndBairro,
        EndCidade=:EndCidade,EndEstado =:EndEstado,TelComercial1 =:TelComercial1, TelComercial2 = :TelComercial2, Notas=:Notas,
        _AtualizacaoUsuario=:_AtualizacaoUsuario";
    $query .= "WHERE IDLocalidade = :IDLocalidade LIMIT 1";
    if($this->ConexaoMySQL()){
        try{
            $qry = $this->conexao->prepare($query);
            $qry->bindValue(':CNPJ',$CNPJ,PDO::PARAM_STR);
            $qry->bindValue(":InscMunicipal"      ,$inscMunicipal       ,PDO::PARAM_STR);
            $qry->bindValue(":InscEstadual"       ,$inscEstadual        ,PDO::PARAM_STR);
            $qry->bindValue(":DataFundacao"       ,$dataFundacao        ,PDO::PARAM_STR);
            $qry->bindValue(":NomeLocalidade"     ,$nomeLocalidade      ,PDO::PARAM_STR);
            $qry->bindValue(":EndLogradouro"      ,$EndLogradouro       ,PDO::PARAM_STR);
            $qry->bindValue(":EndComplemento"     ,$EndComplemento      ,PDO::PARAM_STR);
            $qry->bindValue(":EndCep"             ,$EndCep              ,PDO::PARAM_STR);
            $qry->bindValue(":EndBairro"          ,$EndBairro           ,PDO::PARAM_STR);
            $qry->bindValue(":EndCidade"          ,$EndCidade           ,PDO::PARAM_STR);
            $qry->bindValue(":EndEstado"          ,$EndEstado           ,PDO::PARAM_STR);
            $qry->bindValue(":TelComercial1"      ,$telComercial1       ,PDO::PARAM_STR);
            $qry->bindValue(":TelComercial2"      ,$telComercial2       ,PDO::PARAM_STR);
            $qry->bindValue(":Notas"              ,$notas               ,PDO::PARAM_STR);
            $qry->bindValue(":_AtualizacaoUsuario",$_AtualizacaoUsuario ,PDO::PARAM_STR);
            $qry->bindValue(":IDLocalidade"       ,$IDLocalidade        ,PDO::PARAM_INT);
            $qry->execute();
            if ($qry->rowCount() == 1) {
                return array('erro'=>'0', 'msg'=>'Localidade atualizada com sucesso!');
            }else{
                $ErroSQL = $qry->errorInfo();
                return array('erro'=>'1', 'msg'=>'Não foi alterado nenhum registro. Erro: '.$ErroSQL[1].': '.$ErroSQL[2]);
            }
        }catch (Exception $ex) {
            return array('erro'=>'1', 'msg'=>$ex->getMessage());
        };
    }else{
        return array('erro'=>'1', 'msg'=>'Não houve conexão com o Banco de Dados.');
    }
}
  • Two things I would do: - put a gap between the WHERE like this: $query .= " WHERE and would use ALWAYS double quotes correcting for ":CNPJ"

  • 1

    booooaaa hahahaha, it worked kk

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.