Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 28
Sexo: Masculino

Apenas 1 SELECT por vez (PHP)

09-08-2013 17:37

Gostaria de alguma forma, poder bloquear uma tabela no MYSQL pra poder ser lida apenas uma vez, sem ter nenhuma concorrência, e liberar no final do Script.

Vamos dizer que eu tenha uma tabela, e faço um SELECT nela, dependendo dos resultados, faz algumas coisas, porém se 2 usuário chamar esse Script do PHP ao mesmo tempo, os dados ficam duplicados.

O Ideal seria apenas um conseguir fazer o Select, enquanto o outro fica em espera até esse ultimo acabar.
Não sei se conseguiram entender, utilizo mysqli, versão do PHP 5.2.13. Versão do MySQL 5+, tipo da tabela no Mysql InnoDB.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Apenas 1 SELECT por vez (PHP)

09-08-2013 18:49

Vamos supor que a tabela tenha uma linha específica. Ao logar, você pode fazer um UPDATE nessa linha, alterando o valor de alguma coluna para 1.
Quando acabar de mexer, altera esse valor para 0.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 28
Sexo: Masculino

Apenas 1 SELECT por vez (PHP)

09-08-2013 21:26

então, vou ver se consigo fazer algo disso mesmo, pelo menos fica mais difícil conseguir entrar, mais daí o que você sugere, dar um sleep e tentar de novo? um while? até ele conseguir passar?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Apenas 1 SELECT por vez (PHP)

09-08-2013 22:08

Não sei se seu sistema é baseado em login. Se for, ao logar, você pode fazer um UPDATE em determinada tabela para um valor específico, tipo 1.

Quando o outro usuário for tentar logar, vai fazer uma consulta na tabela para verificar o valor, se 1, não permite logar, se 0, permite.

Quando você acabar de alterar, clica em sair, e nessa página vai ter outro UPDATE, mudando o valor para 0.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado