Ir ao conteúdo

Posts recomendados

Postado

Boa tarde pessoal do fórum, o meu problema é o seguinte estou tentando utilizar   

"SELECT * FROM sgl where nome like '%$livro%'"

para selecionar um campo do meu banco mas   esta sintaxe esta errada, como eu poderia fazer para este comando funcionar ?

OBS :$livro é uma variável

Fico grato qualquer ajuda..

Postado

Boa noite amigo,

 

O mais correto para isso seria utilizar somente o % no final, para começar a buscar a partir do inicio, e não as silabas, utilize também ".." (aspas duplas) e pontos no inicio e no fim para separar a string, lembre-se de filtrar a mesma e usar addslashes para escapar os dados e proteger contra SQL Injection.

 

Segue um exemplo:

"SELECT * FROM sgl WHERE nome LIKE '".addslashes($livro)."%'"

Grande abraço.

  • Curtir 1
Postado
5 horas atrás, Leonardo0308 disse:

Bom dia @Gustavo L1m4

 

O que o colega @ArThDsL falou irá funcionar para rodar o código, porém não irá protege-lo de SQL Injection e seu código será vulnerável.

 

Para tornar as suas consultas mais seguras, recomendo fortemente que pesquise um pouco sobre PDO (PHP Data Objects).

Boa tarde @Leonardo0308,

 

Caso siga algumas normas de segurança, tal como: Filtragem, validação e escape não vejo problema em referenciar a string diretamente no SELECT.

 

Provavelmente ele está utilizando a função mysqli para realizar tal consulta, apesar de muitos (inclusive eu) acharem que a função se encontra depreciada (o que não é verdade, pois o mysqli veio pra substituir o mysql (essa sim está depreciada)), ainda é muito usada pelos programadores nos dias de hoje, o problema é que, não pode haver erros durante a consulta/inserção/update ou afins, a string sempre deve ser filtrada, validada e escapada antes de ser executada, o addslashes é sómente o escape, mas no meu post acima citei que deve ser filtrada antes de passar pelo procedimento de escape.

 

Dentre isso reforço o comentário do companheiro de que o PDO é realmente mais seguro, pois ele automaticamente corrige alguns erros, tem suas desvantagens, mas, vale muito mais a pena que o mysqli. Reforço também o lembrete de sempre de filtrar e validar antes de passar a variável, até mesmo no PDO!

 

Grande abraço!

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!