Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

manogaucho

(ajuda) ht exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens'

Recommended Posts

Tudo bem!!!

Estou com esse erro “ht exception ‘PDOException’ with message ‘SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens’”
Ja conferir não acho nome diferentes para acusar esse erro…

codigo abaixo:

 

action_cliente.php

$sql = 'UPDATE tab_clientes2 SET codigoean:codigoean , descricao_completa:descricao_completa, products_count_admin:products_count_admin ';
$sql .= WHERE id = :id’;

		$stm = $conexao->prepare($sql);
		$stm->bindValue(':codigoean', $codigoean);
		$stm->bindValue(':descricao_completa', $descricao_completa);
		$stm->bindValue(':products_count_admin', $products_count_admin);
		$stm->bindValue(':id', $id);
        $retorno = $stm->execute();

		if ($retorno):
			echo "<div class='alert alert-success' role='alert'>Registro editado com sucesso, aguarde você está sendo redirecionado ...</div> ";
	    else:
	    	echo "<div class='alert alert-danger' role='alert'>Erro ao editar registro!</div> ";
		endif;

		echo "<meta http-equiv=refresh content='3;URL=index.php'>";
	endif;

Tabela

CREATE TABLE `tab_clientes2` (
  `id` int(11) NOT NULL,
  `codigoean` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `descricao_completa` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_count_admin` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
COMMIT;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri o erro

Errado :

$sql = 'UPDATE tab_clientes2 SET codigoean:codigoean , descricao_completa:descricao_completa, products_count_admin:products_count_admin ';

Correto:

$sql = 'UPDATE tab_clientes2 SET codigoean=:codigoean, descricao_completa=:descricao_completa, products_count_admin=:products_count_admin ';

Obrigadooo

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Fábio BN
      Oi Pessoal, estou tentando fazer um Select usando PDO e sempre dá um erro:

      Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/dominio/public_html/pagina_codigox.php on line 25
      A linha 25 é:
      $var_icone->execute();

      Código:
      $codigo_comprador = 123456; $var_icone=$pdo->prepare("select * from loja_temporaria where codigo_user=:$codigo_comprador order by cod_temp desc"); $var_icone->bindValue(":codigo_user",$codigo_comprador); $var_icone->execute(); Fiquei cerca de 3 horas tentando resolver isso e não consegui. Sempre da erro no ( $var_icone->execute(); )
       
      Se alguém puder ajudar.
       
      Obrigado!.
    • Por ammorei
      Boa Noite!
      Estou montando um CRUD, peguei alguns códigos na Internet e adaptei para a minha necessidade, tudo estava correndo perfeitamente bem, mas quando cheguei na parte de UPDATE a aplicação me apresenta o seguinte erro: Warning: PDOStatement::execute(): SQLSTATE[HY093].
      Gostaria da ajuda de vocês para resolver meu problema.
      Segue Código:
      <?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()); } } ?> Desde já agradeço a ajuda.
    • Por josenilson
      Boa tarde para todos !
       
      estou tentando criar um formulário de login e senha com utilizando HTML, PHP, E PDO
      ate o momento estou em um impasse tenho o formulário em HTML ok tenho uma pagina chamada conexão em php OK
      e tenho uma outra pagina chamado logar.php onde basicamente esta pagina faz a verificação de tudo os valores digitados no form HTMl
      nesta também já tem um include "conexão.php"
       
      mas quando eu rodo essa programação acontece o seguinte erro na pagina logar.php.
       
      PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\xampp\htdocs\WEB\logar.php:20 Stack trace: #0 C:\xampp\htdocs\WEB\logar.php(20): PDOStatement->execute() #1 {main}
       
      segue abaixo o código da pagina.
       
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

      <?php
      include "conexao.php";



      if (isset($_POST['logar'])){

      $login = trim(strip_tags($_POST['login']));
      $senha = trim(strip_tags($_POST['senha']));

      //SELECIONA O BANCO DE DADOS
      $select = "SELECT * FROM sistema WHARE usuario=:usuario AND senha:=senha";

      try {
      $result = $conexao->prepare($select);
      $result->bindParam(':usuario', $usuario, PDO::PARAM_STR);
      $result->bindParam(':senha',$senha, PDO::PARAM_STR);

      $result->execute(); nesta parte que vem o erro SQLSTATE[HY093]:
      $contar = $result->rowCount();
      if ($contar>0){
      $usuario = $_POST['login'];
      $senha = $_POST['senha'];
      $_SESSION['usuario'] = $usuario;
      $_SESSION['senha'] = $senha;

      echo 'logado com sucesso';

      header ("refresh: 5 desktop.php");

      }else{
      echo 'os dados digitados estão incorretos';
      }

      } catch(PDOException $e) {
      echo $e;

      }


      }



      ?>
       
      Não estou conseguindo resolver esta parte do erro pois sou iniciante em programação e peço e sua ajuda
      ao postar se possível peço por gentileza que mostre o resultado já inserido no código para maior entendimento do resultado agradeço.
       
      att; josenilson pereira
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.