Re: [gophp] Erro na consulta com o banco de dados

50 views
Skip to first unread message

Ana Lyvia Vieira Silva

unread,
Oct 25, 2012, 2:03:28 PM10/25/12
to go...@googlegroups.com
Tire o sha1 de dentro das aspas... tá passando como literal ao invés de função.

Em 25 de outubro de 2012 15:21, Flávyo Henrique <fhm...@gmail.com> escreveu:


Bom gente estou tentando fazer uma consulta no banco de dados MYSL, usando o código:

$busca = mysql_query("SELECT * FROM `usuarios` WHERE (`login` = 'sha1($login)');");
$busca_linhas = mysql_num_rows($busca);

Mais o retorno com o valor de $busca_linhas sempre resulta em 0, ja tentei usar o mysql_fetch_assoc['login'] mais o resultado é o mesmo,  o engraçado é que se eu pegar esse código e colocar direto no SQL e executar funciona normal, se eu tirar a comparação ele retorna exatamente a quantidade de colunas do resultado, então eu acho que esta na comparação só não sei o motivo nem o local, estou iniciando com php agora então peguem leve nas críticas, e  outra em login já tentei troca de (  ` `  ) para ( ' ' ) e nada e tambem ( ´ ´ ) e não deu em nada, estou sem saber na onde esta o erro, alguém ai pode me ajuda?

--
Você recebeu esta mensagem porque está inscrito na Lista "GOPHP" em Grupos do Google.
Para Postar: go...@googlegroups.com
Para Sair do Grupo: gophp-un...@googlegroups.com
Link: http://groups.google.com/group/gophp?hl=pt-BR
 
 



--
Ana Lyvia V. Silva
+55 62 8131-8014
Analista de Sistemas - Hospital das Clínicas (UFG)
Desenvolvedora Web
Bacharel em Ciência da Computação pela UFT

Flávyo Henrique

unread,
Oct 25, 2012, 2:18:02 PM10/25/12
to go...@googlegroups.com
Já tinha testado e testei de novo e não funciona, se eu tirar as  ( ` ` ) gera um erro por que não da nem um retorno inteiro para o mysql_num_rows e sim um resultado boolen, bom pelo menos é esse o erro que aparece.

Luís Henrique Faria

unread,
Oct 25, 2012, 2:05:32 PM10/25/12
to Flávyo Henrique, go...@googlegroups.com
Sera que é mesmo a coluna "login" que vc gerou hash? Não foi da  senha?

Enviado pelo meu Windows Phone

From: Flávyo Henrique
Sent: 25/10/2012 16:02
To: go...@googlegroups.com
Subject: [gophp] Erro na consulta com o banco de dados

Prof. Baco

unread,
Oct 26, 2012, 7:14:46 AM10/26/12
to go...@googlegroups.com
Vocè já tentou fazer assim:

$busca = mysql_query("SELECT * FROM usuarios WHERE login = 'sha1(".$login.")' ");
ou
$busca = mysql_query("SELECT * FROM usuarios WHERE login = sha1(".$login.") ");

Quem sabe não funciona..

Atenciosamente
,

Prof. (Baco) Edmar Carvalhaes
Consultor - Professor - Programador Client/Server
SomarTech Tecnologia e Serviços ME
Consultec Tecnologia e Serviços ME
+55 (62) 8140-0462

Flávyo Henrique

unread,
Oct 27, 2012, 9:40:49 AM10/27/12
to go...@googlegroups.com
Meu servidor local deu pau, assim que conseguir conserta eu testo pq dessa forma eu nao tinha testado.

Flávyo Henrique

unread,
Oct 27, 2012, 9:42:09 AM10/27/12
to go...@googlegroups.com
Uma observação essas ( " " ) dentro do sha1 nao significa que vai finalizar o comando mysql n???

Flávyo Henrique

unread,
Oct 28, 2012, 10:32:45 PM10/28/12
to go...@googlegroups.com
Testei da forma que você menciono e não deu certo, apareceu o mesmo erro de eu estar tentando inserir um valor boolean dentro do mysql_num_rows

Em 27 de outubro de 2012 11:40, Flávyo Henrique <fhm...@gmail.com> escreveu:

Prof. Baco

unread,
Oct 29, 2012, 6:18:21 AM10/29/12
to go...@googlegroups.com
Oi Flávio estava dando uma olhada na documentação do PHP, tenta fazer assim

$busca = mysql_query("SELECT * FROM usuarios WHERE login = '".sha1($login)."'");

e nos dê o retorno com isto eu acho que vai funcionar. Estou pensando que o seu campo "login" é do tipo boleam.


Atenciosamente
,

Prof. (Baco) Edmar Carvalhaes
Consultor - Professor - Programador Client/Server
SomarTech Tecnologia e Serviços ME
Consultec Tecnologia e Serviços ME
+55 (62) 8140-0462



fabio dutra lopes

unread,
Oct 29, 2012, 5:45:04 AM10/29/12
to go...@googlegroups.com

uso php algum tempo e nunca fiz consulta conctenando com '.'
$loooog = sha1($login);
faz assim $busca = mysql_query("SELECT * FROM usuarios WHERE login = '$loooog' ");

Fabio Dutra Lopes
tel:62 93978230
msn:fabiodu...@msn.com
skype:fabio.dutra.lopes
gtalk:fabiodu...@gmail.com




Date: Mon, 29 Oct 2012 00:32:45 -0200
Subject: Re: [gophp] Erro na consulta com o banco de dados
From: fhm...@gmail.com
To: go...@googlegroups.com

Prof. Baco

unread,
Oct 29, 2012, 7:53:16 AM10/29/12
to go...@googlegroups.com
Fábio, dependendo da versão do PHP ele não vai conseguir interpretar a variável $loooog por isto que terá que concatenar. O modo correto de se fazer seria algo assim:

$checalogin = sha1($login);
$busca = mysql_query("SELECT * FROM usuarios WHERE login = '".$checalogin."' ");

Com isto ele deve te atender, pois alguns servidores (XAMPP por exemplo) não conseguem interpretar as variáveis se as mesmas não estiverem concatenadas.


Atenciosamente
,

Prof. (Baco) Edmar Carvalhaes
Consultor - Professor - Programador Client/Server
SomarTech Tecnologia e Serviços ME
Consultec Tecnologia e Serviços ME
+55 (62) 8140-0462



Flávyo Henrique

unread,
Oct 29, 2012, 12:05:24 PM10/29/12
to go...@googlegroups.com
Me explica tbm uma coisa, pq fazendo dessa forma que vc ensino se eu colocar o nome da tabela dentro de qualquer espécie de aspas da erro e retorna um valor boolean?

Em 29 de outubro de 2012 14:00, Flávyo Henrique <fhm...@gmail.com> escreveu:
Funciono! Pode explicar o porque?

Flávyo Henrique

unread,
Oct 29, 2012, 12:00:16 PM10/29/12
to go...@googlegroups.com
Funciono! Pode explicar o porque?

Em 29 de outubro de 2012 08:18, Prof. Baco <edmarca...@gmail.com> escreveu:

Prof. Baco

unread,
Oct 31, 2012, 8:16:30 AM10/31/12
to go...@googlegroups.com
Claro que explico. O PHP, assim como muitas outras linguagens, também é capaz de tratar as quatro operações matemáticas fundamentais, além de executar operações lógicas como comparações.
A concatenação simples de strings é dada pelo operador de concatenação ponto (.). Ou seja, uma string ponto outra string será igual a nova string.
Como - eu tenho 90% de certeza (repara que ainda tem 10% que não) - você está usando o XAMP, nos parãmetros do PHP.INI deve estar desmarcando a opção de leituras de variáveis e com isto se vc colocar algo assim:

$var = 'Variável';
echo 'Teremos uma $var';
O resultado será algo como assim "Teremos uma $var" (pode testar pra você ver) . Agora se você colocar assim:

$var = 'Variável';
echo 'Teremos uma '.$var;
O resultado será algo como "Teremos uma Variável". No primeiro exemplo ele não chegou a interpretar o $var pois não reconheceu como um código PHP. Estas configurações são do próprio PHP.
Mas como eu te disse antes, SEMPRE UTILIZE CONCATENAÇÕES com isto você evita erros futuros.

Atenciosamente
,

Prof. (Baco) Edmar Carvalhaes
Consultor - Professor - Programador Client/Server
SomarTech Tecnologia e Serviços ME
Consultec Tecnologia e Serviços ME
+55 (62) 8140-0462



Francisco De Assis Pacheco Júnior

unread,
Oct 31, 2012, 8:38:42 AM10/31/12
to go...@googlegroups.com
Só um parêntese!

Já tiver vários problemas com concatenação, porem descobri o seguinte, que quando vc utiliza o código

$var = 'PHP';
echo 'O $var é OO';

A saída será O $var é OO; Isso acontece porque quando se utiliza aspas simples (') o PHP não faz os tratamentos necessários, e entende que vc só que mostrar a string do jeito que ali esta.

Mas se você utilizar da seguinte forma:

$var = 'PHP';
echo "O $var é OO";

A saída será O PHP é OO. Isso porque utilizei as aspas duplas ("), então o PHP interpreta a variável.

Espero ter ajudado.

Prof. Baco

unread,
Oct 31, 2012, 9:03:29 AM10/31/12
to go...@googlegroups.com
Blza Francisco mas com isto você tem que ficar sempre atendo ao tipo de ASPAS que deve utilizar.
Concatenando este problema não ocorre e sem contar que a sua estrutura de programação fica mais clara e mais bonito. Ela fica mais coerente com a estruturação de programações, você não acha?


Atenciosamente
,

Prof. (Baco) Edmar Carvalhaes
Consultor - Professor - Programador Client/Server
SomarTech Tecnologia e Serviços ME
Consultec Tecnologia e Serviços ME
+55 (62) 8140-0462



MarceloMF

unread,
Oct 31, 2012, 9:04:58 AM10/31/12
to go...@googlegroups.com
Aspas simples = array de caracteres em sua forma mais "primitiva"

Aspas duplas = strings com possibilidades de variáveis....

Sempre utilizo assim:

echo "O {$var} é OO"; // isso funciona no xammp ? Oo

[]s

Em 31 de outubro de 2012 10:38, Francisco De Assis Pacheco Júnior <teclin...@gmail.com> escreveu:



--
Att, Marcelo M. Fleury
Blog - http://marcelomf.blogspot.com/
Slides - http://www.slideshare.net/marcelomf/

"O primeiro dever da inteligência é desconfiar dela mesma." By Einstein

Francisco De Assis Pacheco Júnior

unread,
Oct 31, 2012, 10:12:38 AM10/31/12
to go...@googlegroups.com
Havia me esquecido.

echo "O {$var} é OO"; Funciona no xampp, pelo menos no que eu utilizo aqui.
echo 'O {$var} é OO'; Não funciona.

T+


Em 31 de outubro de 2012 12:11, Francisco De Assis Pacheco Júnior <teclin...@gmail.com> escreveu:
Concordo com você sim, até utilizo desta maneira que você colocou.
Só levantei esta questão porque muitos não sabem diferenciar, e se fosse o caso, já esclarecia aqui no grupo.

Utilizar aspas mesmo só pra colocar strings, pra que ficar colocando variável dentro da string. Prefiro cada coisa no seu devido lugar.

T+

Flávyo Henrique

unread,
Oct 31, 2012, 10:10:32 AM10/31/12
to go...@googlegroups.com
Bom em casa uso o vertrigo e na loja o usw server e não mudo os parametros de configurações justamente para não pegar "manias" que podem ocasionar em erros futuramente em outros servidores, e eu realmente nao sabia que tinha essa possibilidade que você menciono e como o carinha coloco ai em baixo de você usar as  aspas ( " " ) nao tem esse problema e por eu sempre as utilizar nunca tinha reparado isso, obrigado pela explicação, outra pessoa tinha me falado que podia ser a criptografia do mysql, se eu fosse nessa linha acho que não acharia a resolução nunca, vlw mesmo por ter me ajudado.

Em 31 de outubro de 2012 10:16, Prof. Baco <edmarca...@gmail.com> escreveu:

Flávyo Henrique

unread,
Oct 31, 2012, 10:11:13 AM10/31/12
to go...@googlegroups.com
Sempre uso aspas duplas entao nao tinha nem percebido que isso podia acontecer, um conhecimento a mais, vlw.

Em 31 de outubro de 2012 10:38, Francisco De Assis Pacheco Júnior <teclin...@gmail.com> escreveu:

Francisco De Assis Pacheco Júnior

unread,
Oct 31, 2012, 10:11:41 AM10/31/12
to go...@googlegroups.com
Concordo com você sim, até utilizo desta maneira que você colocou.
Só levantei esta questão porque muitos não sabem diferenciar, e se fosse o caso, já esclarecia aqui no grupo.

Utilizar aspas mesmo só pra colocar strings, pra que ficar colocando variável dentro da string. Prefiro cada coisa no seu devido lugar.

T+
Em 31 de outubro de 2012 11:04, MarceloMF <marc...@gmail.com> escreveu:

Prof. Baco

unread,
Nov 1, 2012, 7:09:27 AM11/1/12
to go...@googlegroups.com
Bom pelo menos ficou a dica para todos. Mas o padrão de programação seria a concatenação, mas cada um tem um jeito e gosto.
Abraços a todos e vamos dar este tópico por encerrado.


Atenciosamente
,

Prof. (Baco) Edmar Carvalhaes
Consultor - Professor - Programador Client/Server
SomarTech Tecnologia e Serviços ME
Consultec Tecnologia e Serviços ME
+55 (62) 8140-0462



fabio lopes

unread,
Nov 1, 2012, 10:47:15 AM11/1/12
to go...@googlegroups.com
atualizar o php é facil demais.

MarceloMF

unread,
Nov 1, 2012, 12:16:09 PM11/1/12
to go...@googlegroups.com
O PHP até que é fácil mesmo... agora os códigos legados nem sempre :(.

[]s
Reply all
Reply to author
Forward
0 new messages