domingo, 3 de julho de 2011

UPDATE sem atualizar campo com data

No MySQL algumas vezes que você tem um campo do tipo date, timestamp.... que guarda data, o valor é atualizado quando se altera algum outro campo com UPDATE.

Pesquisando muito na net, achei a solução (e como sempre em nenhum site brasileiro).
Ex: você tem uma tabela com os dados do cadastro e uma coluna com DATE que é quando ele criou a conta no seu site. Se o usuário quiser mudar o email por exemplo, e você der um UPDATE na tabela, ela colocará a data do dia da modificação no campo do dia do cadastro.

Para resolver isso, basta executar:
ALTER TABLE `tabela` CHANGE COLUMN `coluna` `coluna` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',

Lembrando que isso basta ser executado apenas uma vez, então não coloque num arquivo PHP.
Vá no Adminer ou PHPMyAdmin e execute esse comando SQL.

Quando for inserir o cadastro no banco de dados, em vez de usar NOW() no campo de data, use SYSDATE(), ex:
$sql = "INSERT INTO `usuarios` VALUES ( NULL,'$nome','$email','$senha',SYSDATE() )";

Um comentário:

  1. Confira uma ferramenta gratuita - Valentina Studio. Produto incrível! IMO é o melhor gerenciador de mysql, para todas as plataformas. http://www.valentina-db.com/en/valentina-studio-overview

    ResponderExcluir