Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera seguinte, eu ja esgotei meu cérebro e não consegui sair do lugar no meu banco tem um campo que chama-se data_criacao e ele é do tipo timestamp mas eu não sei como fazer com que ele grave a data e a hora no banco, o valor eu joguei dentro de um array ficando assim:
$_SESSION['cad'] = array( 'nome' => $_POST['nome'],
'user' => $_POST['user'],
'pass' => $_POST['pass'],
'email' => $_POST['email'],
'fone' => $_POST['fone'],
'endereco' => $_POST['endereco'],
'cod_bairro' => $_POST['bairro'],
'cidade' => $_POST['cidade'],
'cod_estado' => $_POST['estado'],
'cep' => $_POST['cep'],
'cpf' => $_POST['cpf'],
'cod_status' => $_POST['status'],
'cod_nivel' => $_POST['nivel'],
'data_criacao' => NOW(),
'data_mod' => null,
);
Não me recordo bem onde foi que eu li que o comando **NOW() **insere a data e a hora de acordo com o servidor, mas esta dando esse erro a baixo:
**Fatal error**: Uncaught Error: Call to undefined function NOW() in /opt/lampp/htdocs/adm/cad_user.php:29 Stack trace: #0 {main} thrown in **/opt/lampp/htdocs/adm/cad_user.php** on line **29**
Tentei usar o **NOW()** com e sem as aspas... e nenhum deles foi, se coloco ele com aspas ele deixa cadastrar mas não grava a data e nem a hora, a coluna no banco fica zerada...
Se puderem me ajudar... ficarei muito agradecido...>
Agora, Fernando C disse:
tente configurar como valor default current_timestamp.
Preciso que seja um pouco mais expecifico, ainda sou novato e não compreendo muito bem o código.
Esse current_timestamp. eu defino onde??? no banco ou no lugar no NOW()?
olha isso é nas definicoes da tabela mesmo; pesquise sobre alter table mysql
>
1 minuto atrás, Fernando C disse:
olha isso é nas definicoes da tabela mesmo; pesquise sobre **alter table mysql**
Blz... mas... no meu caso eu tenho dois campos, um pra criar a data quando o cadastro é criado e um pra guardar a data de quando foi feita a ultima atualização, eu precisava de algo que eu pudesse escolher qual dos campos eu quero gravar e é isso que eu tenho duvidas...@Kaio Augusto de Castro, joia!
Em mysql ficaria assim, para deixar seu campo data de criação pegar a data automaticamente pelo banco,
e o campo data_alteracao atualizar a data sempre que tiver alguma alteração na tabela:
ALTER table TABELA
MODIFY data_criacao
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ALTER table TABELA
MODIFY data_alteracao
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Lembrando que nesse caso, você não precisaria mais passar esses campos no PHP
No caso do seu problema com o now, você precisa deixa-lo entre aspas
'data_criacao' => 'now()'
Pois assim só sera executado no banco de dados, sem as aspas, o PHP entende que você esta querendo executar uma função do php, e você não tem essa função! :)
>
Em 12/13/2017 at 20:29, EdCesar disse:
@Kaio Augusto de Castro, joia!
Em mysql ficaria assim, para deixar seu campo data de criação pegar a data automaticamente pelo banco,
e o campo data_alteracao atualizar a data sempre que tiver alguma alteração na tabela:
ALTER table TABELA
MODIFY data_criacao
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ALTER table TABELA
MODIFY data_alteracao
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Lembrando que nesse caso, você não precisaria mais passar esses campos no PHP
No caso do seu problema com o now, você precisa deixa-lo entre aspas
'data_criacao' => 'now()'
Pois assim só sera executado no banco de dados, sem as aspas, o PHP entende que você esta querendo executar uma função do php, e você não tem essa função! :)
Obrigado EdCesar, era exatamente isso, mas quando eu coloquei o now entre ' ', ele gravou mas sem as datas de criação e modificação, vou tentar esses comando no meu sql... obrigado pela ajuda e pela disposição.
>
Em 13/12/2017 at 20:29, EdCesar disse:
@Kaio Augusto de Castro, joia!
Em mysql ficaria assim, para deixar seu campo data de criação pegar a data automaticamente pelo banco,
e o campo data_alteracao atualizar a data sempre que tiver alguma alteração na tabela:
ALTER table TABELA
MODIFY data_criacao
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ALTER table TABELA
MODIFY data_alteracao
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Lembrando que nesse caso, você não precisaria mais passar esses campos no PHP
No caso do seu problema com o now, você precisa deixa-lo entre aspas
'data_criacao' => 'now()'
Pois assim só sera executado no banco de dados, sem as aspas, o PHP entende que você esta querendo executar uma função do php, e você não tem essa função! :)
Desculpe a demora em precedentes, eu estava muito ocupado esses dias e estava esperando meu computador novo chegar, fui testar gora o código no mysql e ele executou de boas, porem ainda esta gravando com data e hora zerado, "000-00-00 00:00:00", sabe me informar o que porque disso agora?
______________________________________________________________________
Este problema só esta ocorrendo com o cadastro é feito pelo site, se eu cadastrar por código no mysql ele funciona de boa!
______________________________________________________________________
Erro encontrado, eu estava editando o arquivo do bkp e não o do servidor^^ malz aeeee.
tente configurar como valor default current_timestamp.