Boa noite Galera Estou tendo o seguinte erro ao clica no botão cadastrar Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /var/www/html/winprofit/class/clientes.class.php on line 106 A linhas 106 é
if($cst->execute()){
return 'ok';
}else{
return 'erro';
}
}catch (PDOException $ex){
return 'error '.$ex->getMessage();
}
HTML
<?php
include("cabecalho.php");
require_once 'class/funcoes.class.php';
require_once 'class/clientes.class.php';
//Objeto para substanciar as classes
$objFc = new Funcoes();
$objCn = new Clientes();
if(isset($_POST['btnCadastrar'])){
if($objCn->queryInsert($_POST)=='ok'){
header("location: /winprofit/formulario_cliente.php");
}else{
echo '<script type="text/javascript">
alert("Erro ao cadstrar cliente")
</script>';
}
}
?>
<div id="page-wrapper">
<div class="container-fluid">
<!-- Page Heading -->
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">
Adicionar Cliente - <small>Clientes</small>
</h1>
<ol class="breadcrumb">
<li>
<i class="fa fa-dashboard"></i> <a href="home.php">Painel Home</a>
</li>
<li class="active">
<i class="fa fa-money "></i> Cadastro de Clientes
</li>
</ol>
</div>
</div>
<!-- /.row -->
<div class="row">
<div class="col-md-12">
<form role="form" action="" method="post">
<div class="form-group col-md-6 col-sm-6">
<label>NOME DO CLIENTE</label>
<input class="form-control" type="text" name="nomeCliente">
</div>
<div class="form-group col-md-6 col-sm-6">
<label>CNPJ/CPF</label>
<input class="form-control" maxlength="14" type="text" name="docCliente" id="" onKeyUp="maskCpf(this)">
</div>
<div class="form-group col-md-2 col-sm-4">
<label>CEP</label>
<input class="form-control" id="cep" placeholder="" type="text" name="cepCliente">
</div>
<div class="form-group col-md-4 col-sm-6">
<label>RUA</label>
<input class="form-control" placeholder="" type="text" name="ruaCliente" id="rua">
</div>
<div class="form-group col-md-2 col-sm-2">
<label>NÚMERO</label>
<input class="form-control" placeholder="" type="text" name="numCasaCliente">
</div>
<div class="form-group col-md-4 col-sm-6">
<label>BAIRRO</label>
<input class="form-control" placeholder="" type="text" name="bairroCliente" id="bairro">
</div>
<div class="form-group col-md-6 col-sm-6">
<label>CIDADE</label>
<input class="form-control" placeholder="" type="text" name="cidadeCliente" id="cidade">
</div>
<div class="form-group col-md-3 col-sm-3">
<label>ESTADO</label>
<input class="form-control" placeholder="" type="text" name="ufCliente" id="uf">
</div>
<div class="form-group col-md-3 col-sm-3">
<label>CÓDIGO IBGE</label>
<input class="form-control" placeholder="" type="text" name="IBGEcliente" id="ibge">
</div>
<div class="form-group col-md-4 col-sm-3">
<label>TELEFONE</label>
<input class="form-control" id="telefone" placeholder="" type="text" name="telCliente">
</div>
<div class="form-group col-md-4 col-sm-3">
<label>CELULAR</label>
<input class="form-control" id="celular" placeholder="" type="text" name="celCliente">
</div>
<div class="form-group col-md-4 col-sm-12">
<label>E-MAIL</label>
<input class="form-control" placeholder="" type="email" name="emailCliente">
</div>
<div class="form-group col-md-12">
<button type="submit"name="btnCadastrar"class="btn btn-primary">Salvar</button>
<button type="reset" class="btn btn-danger">Limpar</button>
</div>
</form>
</div>
<!-- /.row -->
</div>
<!-- container-fluid -->
</div>
<!-- /#page-wrapper -->
</div>
<?php
include("rodape.php");
?>
class.cliente
<?php
require_once'conexao.class.php';
require_once'funcoes.class.php';
class Clientes{
private $con;
private $objCliente;
private $idCliente;
private $nomeCliente;
private $docCliente;
private $cepCliente;
private $ruaCliente;
private $numCasaCliente;
private $bairroCliente;
private $cidadeCliente;
private $ufCliente;
private $IBGEcliente;
private $telCliente;
private $celCliente;
private $emailCliente;
private $dataCadastro;
//construtor
public function __construct(){
$this->con = new conectaDB();
$this->objCliente = new Funcoes();
}
public function __set($atributo, $valor){
$this->$atributo = $valor;
}
public function __get($atributo){
return $this->$atributo;
}
// metodos
//Metodo que seleciona o arquivo para edição
public function querySeleciona($dado){
try{
$this->idCliente = $this->objCliente->base64($dado, 2);
$cst = $this->con->conecta()->prepare("SELECT 'idCliente', 'nomeCliente', 'docCliente', 'cepCliente',
'ruaCLiente', 'numCasaCLiente', 'bairroCliente', 'cidadeCliente',
'ufCliente', 'IBGEcliente', 'telCliente', 'celCLiente', 'emailCliente'
'dataCadastro' FROM 'clientes' WHERE 'idCliente = idClien';");
$cst->bindParam(":idClien", $this->idCliente, PDO::PARAM_INT);
$cst->execute();
return $cst->fetch();
}catch (PDOException $ex){
return 'error ';
$ex->getMessage();
}
}
//Lista todos o registro do formulários
public function querySelect(){
try{
$cst = $this->con->conecta()->prepare("SELECT 'idCliente', 'nomeCliente', 'docCliente', 'cepCliente',
'ruaCLiente', 'numCasaCLiente', 'bairroCliente', 'cidadeCliente',
'ufCliente', 'IBGEcliente', 'telCliente', 'celCLiente', 'emailCliente'
FROM 'clientes';");
$cst->execute();
return $cst->fetchAll();
}catch (PDOException $ex){
return 'error '.$ex->getMessage();
}
}
//Metodo que inseri os registro no banco de dados via POST
public function queryInsert($dados){
try{
$this->nomeCliente = $this->objCliente->tratarCaracter($dados['nomeCliente'], 1);
$this->docCliente = $dados['docCliente'];
$this->cepCliente = $dados['cepCliente'];
$this->ruaCliente = $this->objCliente->tratarCaracter($dados['ruaCliente'],1);
$this->numCasaCliente = $dados['numCasaCliente'];
$this->bairroCliente = $this->objCliente->tratarCaracter($dados['bairroCliente'], 1);
$this->cidadeCliente = $this->objCliente->tratarCaracter($dados['cidadeCliente'], 1);
$this->ufCliente = $this->objCliente->tratarCaracter($dados['ufCliente'], 1);
$this->IBGEcliente = $dados['IBGEcliente'];
$this->telCliente = $dados['telCliente'];
$this->celCliente = $dados['celCliente'];
$this->emailCliente = $dados['emailCliente'];
//$this->senha = sha1($dados['senha']);
$this->dataCadastro = $this->objCliente->dataAtual(2);
$cst = $this->con->conecta()->prepare("INSERT INTO 'clientes' ('nomeCliente', 'docCliente',
'cepCliente', 'ruaCliente','numCasaCliente', 'bairroCliente',
'cidadeCliente','ufCliente', 'IBGEcliente', 'telCliente',
'celCliente','emailCliente','dataCadastro') VALUES
(:nomeCliente, :docCliente, :cepCliente, :ruaCliente,
:numCasaCliente, :bairroCliente, :cidadeCliente,:ufCliente,
:IBGEcliente, :telCliente, :celCliente,:emailCliente,
:dataCadastro;");
$cst->bindParam(":nomeCliente", $this->nomeCliente, PDO::PARAM_STR);
$cst->bindParam(":docCliente", $this->docCliente, PDO::PARAM_STR);
$cst->bindParam(":cepCliente", $this->cepCliente, PDO::PARAM_STR);
$cst->bindParam(":ruaCliente", $this->ruaCliente, PDO::PARAM_STR);
$cst->bindParam(":numCasaCliente", $this->numCasaCliente, PDO::PARAM_STR);
$cst->bindParam(":bairroCliente", $this->bairroCliente, PDO::PARAM_STR);
$cst->bindParam(":cidadeCliente", $this->cidadeCliente, PDO::PARAM_STR);
$cst->bindParam(":ufCliente", $this->ufCliente, PDO::PARAM_STR);
$cst->bindParam(":telCliente", $this->telCliente, PDO::PARAM_STR);
$cst->bindParam(":celCliente", $this->celCliente, PDO::PARAM_STR);
$cst->bindParam(":emailCliente", $this->emailCliente, PDO::PARAM_STR);
$cst->bindParam(":dataCadastro", $this->dataCadastro, PDO::PARAM_STR);
if($cst->execute()){
return 'ok';
}else{
return 'erro';
}
}catch (PDOException $ex){
return 'error '.$ex->getMessage();
}
}
public function queryUpdate($dados){
try{
$this->idCliente = $this->objCliente->base64($dados['idClien'],2);
//Trata caracteres
$this->nomeCliente = $this->objCliente->tratarCaracter($dados['nomeCliente'], 1);
$this->ruaCliente = $this->objCliente->tratarCaracter($dados['ruaCliente'], 1);
$this->bairroCliente = $this->objCliente->tratarCaracter($dados['bairroCliente'], 1);
$this->cidadeCliente = $this->objCliente->tratarCaracter($dados['cidadeCliente'], 1);
$this->ufCliente = $this->objCliente->tratarCaracter($dados['ufCliente'], 1);
//sem tratamento de caracteres
$this->docCliente = $dados[docCliente];
$this->celCliente = $dados[cepCliente];
$this->numCasaCliente = $dados[numCasaCliente];
$this->IBGEcliente = $dados[IBGEcliente];
$this->telCliente = $dados[telCliente];
$this->celCliente = $dados[celCliente];
$this->emailCliente = $dados[emailCliente];
$cst = $this->con->conecta()->prepare("UPDATE 'clientes' SET 'nomeCliente' = :nomeCliente, 'docCliente' = :docCliente,
'celCliente' = :celCliente, 'ruaCliente' = :ruaCliente,'numCasaCliente' = :numCasaCliente,
'bairroCliente' = :bairroCliente, 'cidadeCliente' = :cidadeCliente,
'ufCliente' = :ufCliente, 'IBGEcliente' = :IBGEcliente,
'telCliente' = :telCliente, 'celCliente' = :celCliente,
'emailCliente' = :emailCliente WHERE 'idCliente' = :idClien;");
$cst->bindParam(":idClien", $this->idCliente, PDO::PARAM_INT);
$cst->bindParam(":nomeCliente", $this->nomeCliente, PDO::PARAM_STR);
$cst->bindParam(":docCliente", $this->docCliente, PDO::PARAM_STR);
$cst->bindParam(":celCliente", $this->cepCliente, PDO::PARAM_STR);
$cst->bindParam(":ruaCliente", $this->ruaCliente, PDO::PARAM_STR);
$cst->bindParam(":numCasaCliente", $this->numCasaCliente, PDO::PARAM_STR);
$cst->bindParam(":bairroCliente", $this->bairroCliente, PDO::PARAM_STR);
$cst->bindParam(":cidadeCliente", $this->cidadeCliente, PDO::PARAM_STR);
$cst->bindParam(":ufCliente", $this->ufCliente, PDO::PARAM_STR);
$cst->bindParam(":telCliente", $this->telCliente, PDO::PARAM_STR);
$cst->bindParam(":celCliente", $this->celCliente, PDO::PARAM_STR);
$cst->bindParam(":emailCliente", $this->emailCliente, PDO::PARAM_STR);
if($cst->execute()){
return "OK";
}else{
return "erro";
}
}catch (PDOException $ex){
return "Erro".$ex->getMessage();
}
}
//Metodo que vai deletar um registro recebendo o ID
public function queryDelete($dado){
try{
$this->idCliente = $this->objCliente->base64($dado,2);
$cst = $this->con->conecta()->prepare("DELETE FROM 'clientes' WHERE 'idCliente' = :idClien:");
$cst->bindParam(":idClien", $this->idCliente, PDO::PARAM_INT);
if($cst->execute()){
return "OK";
}else{
return "ERRO";
}
}catch (PDOException $ex){
return "ERRO ".$ex->getMessage();
}
}
}
?>