Ir para conteúdo

POWERED BY:

Arquivado

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

cleimarlemes

Erro ao fazer UPdate

Recommended Posts

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /home/u870495724/public_html/action_foto.php:122 Stack trace: #0 /home/u870495724/public_html/action_foto.php(122): PDOStatement->execute() #1 {main} thrown in /home/u870495724/public_html/action_foto.php on line 122

 

se eu ignoro esta linha: $retorno = $stm->execute();   // ele retorna com erro ao editar registro

 

$sql = 'UPDATE tb_entrada SET matricula=:matricula, tipo=:tipo, situacao=:situacao, nome=:nome, identidade=:identidade, placa=:placa, veiculo=:veiculo, cidade=:cidade, uf=:uf, empresa=:empresa, foto=:foto, dataentrada=:dataentrada, horaentrada=:horaentrada, horasaida=:horasaida';
			$sql .= 'WHERE id = :id';

			$stm = $conexao->prepare($sql);
			$stm->bindValue(':matricula', $matricula);
			$stm->bindValue(':tipo', $tipo);
			$stm->bindValue(':situacao', $situacao);
			$stm->bindValue(':nome', $nome);
			$stm->bindValue(':identidade', $identidade);
			$stm->bindValue(':placa', $placa);
			$stm->bindValue(':veiculo', $veiculo);
			$stm->bindValue(':cidade', $cidade);
			$stm->bindValue(':uf', $uf);
			$stm->bindValue(':empresa', $empresa);
			$stm->bindValue(':dataentrada', $dataentrada);
			$stm->bindValue(':horaentrada', $horaentrada);
			$stm->bindValue(':horasaida', $data);
			$stm->bindValue(':foto', $nome_foto);
			$stm->bindValue(':id', $id);
			$retorno = $stm->execute();

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Motta, acho que esse tópico deveria ir para PHP.

 

Ou então o @cleimarlemes passa o SQL gerado pelo código para avaliar.

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Marlon Pacheco disse:

@Motta, acho que esse tópico deveria ir para PHP.

 

Ou então o @cleimarlemes passa o SQL gerado pelo código para avaliar.

nao entendi.. passar o sql gerado..

so tenho isso aki..

$sql = 'UPDATE tb_entrada SET matricula=:matricula, tipo=:tipo, situacao=:situacao, nome=:nome, identidade=:identidade, placa=:placa, veiculo=:veiculo, cidade=:cidade, uf=:uf, empresa=:empresa, foto=:foto, dataentrada=:dataentrada, horaentrada=:horaentrada, horasaida=:horasaida';
			$sql .= 'WHERE id = :id';

o que devo fazer pra gerar esse sql pelo codigo. ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

retornou isso aki.

 

UPDATE tb_entrada SET matricula=:matricula, tipo=:tipo, situacao=:situacao, nome=:nome, identidade=:identidade, placa=:placa, veiculo=:veiculo, cidade=:cidade, uf=:uf, empresa=:empresa, foto=:foto, dataentrada=:dataentrada, horaentrada=:horaentrada, horasaida=:horasaidaWHERE id = :id
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /home/u870495724/public_html/action_foto.php:115 Stack trace: #0 /home/u870495724/public_html/action_foto.php(115): PDOStatement->execute() #1 {main} thrown in /home/u870495724/public_html/action_foto.php on line 115

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@cleimarlemes, não tenho como testar agora, mas o WHERE está colado no restante do código. Inclui um espaço lá e tenta de novo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

um.. blz cara ta vendo a gente precisa de outros olhos pra nos ajudar com um erro tao insignificante que nem eu tinha visto.. me perdoe .. mas agradeço de coracao pela ajuda.. agora ele fez update.. agora so tenho que achar uma maneira dele atualizar o campo horasaida automatico so clicando em salvar.. como se fosse um insert .. vou ver o que consigo..

 

OBRIGADO!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 19/06/2017 at 17:02, Marlon Pacheco disse:

@cleimarlemes, não tenho como testar agora, mas o WHERE está colado no restante do código. Inclui um espaço lá e tenta de novo.

opa blz.. consegui agora ta tudo funcionando blz. tipo sabe o porque de estar dando uma diferença de 4min na hora. no pc ta 10:40 ae registra la tipo 10:36 mas tudo bem nao importa o importante que ta funcionando. queria que você desse uma olhada no sistema.. www.polotextilinhumas.esy.es   

login: demo@demo.com

senha: demo123

 

qualquer coisa estou aberto a dicas pra melhorar o sistema.. a parte de saida nao teve jeito tive que fazer como se fosse editar pra salvar a hora de saida

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por clovis.sardinha
      Boa noite.
      Tenho um bd com 2 tabelas. A primeira (serv_os) tem as colunas id, fk_os e fk_servico  a segunda (prod_os) tem as colunas id, fk_os e agora eu criei a coluna fk_serv. A coluna fk_serv vai ser preenchida com o valor id da primeira coluna. Fiz o seguinte update entre as tabelas: 
      UPDATE prod_os
      JOIN serv_os ON serv_os.fk_os= prod_os.fk_os
      SET prod_os.fk_serv = serv_os.id
      WHERE prod_os.fk_os=serv_os.fk_os;
       
      Até aqui tudo bem, porém, fiquei com o seguinte problema.  Muitas vezes  existem vários serviços na primeira tabela, por exemplo id=100 produto A, id=101 produto B, porém o fk_os é o mesmo . Ai na coluna fk_serv aparece sempre o id do produto A. Nesse caso duas vezes. O produto B, C,...etc não aparece. 
      Não consegui nenhum comando, já que o join é pela coluna fk_os, que fizesse o update mudar o ponteiro para o serviço B,C,etc.
      Se alguém puder me ajudar eu agradeço.
    • Por vicente386
      Ola. Tenho uma tabela no 3 campos que sao "LIVRO, POS, PAGINA" ao qual a logica e a seguinte: cada livro tem 100 paginas cada pagina tem 30 posiçoes tenho 8,364 registros pra inserir chegando a 100 paginas com 30 posiçoes cada passa para o livro 2 e como fazer o update na tabela inserindo nos campos LIVRO = 1, POS de 0 a 30 e PAGINA 1 para cada 30 registros logos apos pagina 2 ?
      estou tentando fazer assim:
      <?php > ini_set('max_execution_time', 2000); $pdo = new > DO(DB_SERVER.":host=".DB_HOST.";dbname=".DB_BASE,DB_USER,DB_PASSWORD); > $sql = $pdo->prepare("SELECT count(*) FROM tabela2018"); > $sql->execute(); > $livro = 1; > foreach($sql as $obj){ > $variavel = $obj[0]; > ceil((float)$variavel/100); > $qtdlaco = ceil((float)$variavel/100); > for ($id = 1; $id <= 35; $id++) { > for($L=1; $L < $qtdlaco; $L++) { > for ($P = 0; $P <= 30; $P++) { > $sql = $pdo->prepare("UPDATE tabela2018 SET LIVRO = :LIVRO, POS = :POS, PAGINA = :PAGINA WHERE idtabela2018 = $id"); > $sql->bindValue(':LIVRO', $livro); > $sql->bindValue(':POS', $P); > $sql->bindValue(':PAGINA', $L); > $sql->execute(); > } > } > } >} ?> mas na tebela so aparece: LIVRO POS PAGINA 1 30 83 1 30 83 1 30 83 e nao como deveria : LIVRO POS PAGINA 1 0 1 1 1 1 1 2 1
    • Por lezão
      Boa tarde, galera!
      Td bem com vcs?
       
      Estou precisando de um UPDATE que qnd eu seleciono o checkbox e clico no botão submit ele chama para a pagina que ira fazer a alteração.
      Tenho um exemplo só que  em asp, vejam abaixo:
      Imagem UPDATE
       
      espero ter explicado certo.
       
      obrigado!
       
    • Por Samuel Pietro
      Estou com a seguinte situação.
       
      Preciso que o Update só aconteça nos campos vazios. Por exemplo, tenho no CSV 
      id;a;b;c 1;1;;3 1;1;2;;  
      |id | a | b | c |
      | 1 | 1 |    | 3 |
      | 1 | 1 | 2 |  |
       
      Na primeira linha tenho o campo da coluna b em branco, logo ele irá inserir no banco de dados o conteúdo da primeira linha, quando ele ler a segunda linha irá ver que a minha key, que é a coluna id, já existe e irá atualizar, o problema é que eu preciso que  atualize apenas os campos em branco, pois se atualizar todos os campos ele iria substituir o campo da coluna c que ficaria em branco !
       
      O código que fiz até o momento! 
      INSERT INTO tabela (id, a, b, c) VALUES ('$column[0]','$column[1]','$column[2]','$column[3]') on duplicate key UPDATE id='$column[0]',a='$column[0]', b='$column[0]', c='$column[0]'  
      Gostaria da ajuda de vocês para saber como posso adequar esse código na minha necessidade, seria tipo adcionar is null UPDATE.. sei lá, tentei várias opções mas sem sucesso ainda! 
       
       
       
       
    • Por FERREIRA FILHO
      Estou tentando fazer um update de vários registros com checkbox, mais não está atualizando no banco de dados MySQL. Segue o meu código, desde já agradeço!
       
      <?php 
      include_once("../config/conexao.php");

      $nivel = $_SESSION['nivel'];
         
      if ($_SESSION['nivel'] == 4)
          {
      $sql = "SELECT ID, NOME, VOLUNTARIO FROM cidadao ORDER BY NOME";
      $res = mysql_query($sql) or die (mysql_error() );
      if (mysql_num_rows($res) > 0 )
      echo '<form method="post">';
      ?>
      <table width="431" border="0" align="center" cellpadding="0" class="bordaFina">
          <tr bgcolor="#999999" >
            <td width="302" align="center" valign="middle" bgcolor="#F0F0F0" class="style27">Nome  </td>
            <td width="123" align="center" valign="middle" bgcolor="#F0F0F0" class="style27">Voluntário</td>
          </tr>
          <?php
      while ($row = mysql_fetch_assoc($res))
          {     
          ?>
          <tr >
            <td><?php echo $row["NOME"];?></div></td>
        <td ><div align="center"> 
       <input type="checkbox" name= "VOLUNTARIOS[<?php  $row["ID"] ?>]" value="1" <?php if($row["VOLUNTARIO"] == 1){ echo "checked";} ?>> 
       <input type="hidden" name= "VOLUNTARIOS[<?php $row["ID"] ?>]" value="0" <?php if($row["VOLUNTARIO"] == 0){ echo ""; }  ?>>
        </div></td>
        </tr>
          <?php 
        }  //End While
        ?>
      </table>
        
      <p><div align="center"><?php echo '<input type="submit"name= "submit" value= "Salvar">';?></div>
        <?php
      if (isset ($_POST["submit"]))
      {        
              foreach($_POST['VOLUNTARIOS'] as $ID => $VOL) 
                {mysql_query("update cidadao SET VOLUNTARIO ='$VOL' WHERE ID='$ID'")or die(mysql_error()); }                    
                 echo "<meta HTTP-EQUIV='refresh' CONTENT='1;URL=teste.php'>";
      }
      ?>
      <?php
      echo'<br>';
      echo '</form>';
      }//endif
      ?>
       

×

Informação importante

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