Ir para conteúdo

Arquivado

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

Fábio BN

[Resolvido] [Resolvido] Erro com PDO Invalid parameter number

Recommended Posts

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!.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já descobri o erro:

$codigo_comprador = 123456;
$var_icone=$pdo->prepare("select * from loja_temporaria where codigo_user=:codigo_user order by cod_temp desc");
$var_icone->bindValue(":codigo_user",$codigo_comprador);
$var_icone->execute();

Estava usando a variável errada.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por manogaucho
      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;  
    • 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.