Ir para conteúdo

POWERED BY:

Arquivado

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

Andre Cocuroci

[Resolvido] Mysql

Recommended Posts

Olá.

 

Faz um tempo e desenvolvi um sisteminha simples e nele tem uma tabela de clientes. Nessa tabela tem alguns campos básicos cmo nome, endereço e e-mail.

 

O e-mail é a chave primária dessa tabela.

 

Eu fiz assim, incluo o cliente normalmente, porém se já existir um cliente com aquele e-mail ele atualiza os dados, exe:

insert into cota_clientes values ('$nome', '$endereco', '$email')on duplicate key update nome='$nome', endereco='$endereco'

Localmente está tudo ok. Se eu incluo um cliente com o mesmo e-mail ele atualiza os demais dados. Ao fazer as consultas me devolve com os dados atualizados, porém online não está acontecendo isso. Parece que tem um tipo de cache. Se eu tentar incluir um cliente com um e-mail já existente eu consigo, mas ao fazer a consulta sempre me devolve os dados anteriores. Quando eu vejo direto na base de dados dependendo de onde eu vejo ou me devolve os dados atualizados ou os antigos.

 

Alguem sabe o que pode estar acontecendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem dois 'primos' do insert

 

o 'replace' e o 'insert ignore'

 

se as chaves baterem(ele tentar entrar com uma chave q jah existe) podem acontecer 3 coisas dependendo do 'insert' q você usar

 

o insert normal simplismente da erro ou warning (depende da configuraçao)

o insert ignore nao insere nada e fica calado

o replace deleta a linha antiga e substitui pelos novos valores

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu usei o replace e deu certo. Mas ainda achei que era cache e fui na documentação do mysql e achei a solução para o meu problema. Nesses dois selects que estava trazendo dados desatualizados o problema era cache realmente e usei no select o seguinte comando "SQL_NO_CACHE" e deu certo.

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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