Ir para conteúdo
Jefferson andre

algumas duvidas em salvar campo data no pdo bindvalue

Recommended Posts

ola, 

Alguem poderia me ajudar a salvar um campo data usando pdo por favor, minhas duvidas estao no seguinte:

 

O campo no insert precisa ter sido instanciado como data antes de salvar ?

 

Eh possivel alterar o campo data antes de salvar usando bindvalue?

 

O trecho abaixo do bindvalue esta correto ou precisa por parametros de data para ser salvo ?

<form> (...) trecho form

                <div class="form-group col-md-3">
                  <label for="inputEmail4">Data de termino</label>
                  <input type="date" name="dtfim" id="dtfim" class="form-control" aria-label="" aria-describedby="inputGroup-sizing-sm">
                </div>


salvaroscampos (...) trecho php

    $filtro->bindValue(":dtfim", $dtfim);


 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 30/11/2019 at 17:44, Johnny Saymon disse:

Existe algum trecho no código onde você cria a variável $dtfim ?

 

Talvez ai esteja o problema pois a variavel dtfim nao esta sendo inicializada, acho que se for previamente determinada o problema resolva.

 

Mas sinceramente nunca fiz isso juntando o html com o php, entao acho que deve ser assim no form:

<?php

    $dtfim = date('Y-m-d');

?>

cont. do form.

 

eh desse jeito mesmo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Jefferson andre.

 

Desculpa a demora.

 

Em versões antigas do PHP o seu código poderia funcionar, mas não seria considerado uma boa prática, pois abre uma brecha de segurança.

 

Uma coisa importante a compreender que é o HTML e PHP são coisas distintas e mesmo podendo misturar os dois em um arquivo, a comunicação dos dados enviados de um formulário não são passados para o PHP de forma tão direta, eles são anexados a um Request (uma solicitação que na web ocorre a cada acesso de página e solicitação de imagens, arquivos, etc).

 

A forma mais simples e direta, porém não ideal, é pegar os dados que estão nas variáveis $_GET e $_POST. Reformulando seu código, ele deveria ficar assim:

 

<form method="POST">
  <!--Outras linhas de código -->

  <div class="form-group col-md-3">
    <label for="inputEmail4">Data de termino</label>
    <input type="date" name="dtfim" id="dtfim" class="form-control" aria-label="" aria-describedby="inputGroup-sizing-sm">
  </div>
  
  <!--Outras linhas de código -->
</form>

<?php
	// captura do valor, 
	// observe que a chave desse array 
	// é o mesmo valor do atributo "name" lá do HTML
	$dataFim = $_POST['dtfim'];

    $filtro->bindValue(":dtfim", $dtfim);
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por ericklluz
      Boa tarde senhores, sou iniciante no Js e estou com uma dúvida, estou tentando resolver uma questão num CRM onde temos um campo de data, isto é, um input com uma data específica e eu gostaria de criar um script que recebe este input e retorna o primeiro dia deste mês e coloca em outro campo.
       
      Alguém poderia me dar uma ajuda pra que entenda como construír este pequeno script. serei eternamente grato.
       
      Obrigado comunidade!
    • Por Kefatif
      Prezados, boa tarde.
       
      Preciso criar um select que me traga do banco os registros que se repetem vazios nos últimos 3 meses nos campos:
      campo_a
      campo_b
       
      vazios (null).
       
      Podem me ajudar?
    • Por Roberto S. Santos
      Boa noite devs.
      Poderiam me ajudar ?
      Estou querendo fazer o seguinte em um formulário PHP...
      O usuário deve cadastrar a sua data e horário do uso na churrasqueira e quando chegar nesta data e no horário final ele apaga os dados do cadastro desta reserva.
      Como posso fazer isto com PHP ?
      Temos...
      data reserva
      hora reserva  (hora inicial)
      hora final (já vai estar pré definida na base de dados)
      Banco de Dados : clientes
      Tabela : reserva
      Deus abençoe a todos.
       
    • Por Kefatif
      Prezados, boa tarde!
       
      Estou tentando fazer com que meu sistema grave num campo chamado "ULTIMO_ACESSO" a data após o login do usuário.
       
      Para isso estou tentando com o seguinte código:
      $sqlultimoacesso = "UPDATE USUARIOS set ULTIMO_ACESSO = curdate() WHERE ID_USUARIO = ".$row["ID_USUARIO"]; Mas não estou conseguindo, alguém poderia me auxiliar?
       
      Agradeço desde já pela ajuda!
×

Informação importante

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