2013-02-18 3 views
0

Salut, j'ai essayé de faire une requête, qui reçoit la valeur sur une chaîne de requête, mais ne fonctionne pas, je pense que la requête elle-même n'est pas bonne. pourriez-vous m'aider?Sql Requête LIKE ne fonctionne pas

Alors que je reçois la requête sur

<%String detalhe = request.getParameter("value");%> 

Je ne vais pas les connexions et mettre des choses, parce qu'ils travaillent avec d'autres querys, de sorte que le problème ne sont pas les connexions.

// sql query to retrieve values from the specified table. 

String QueryString = "SELECT * FROM ebooko.dadoslivros WHERE Autor LIKE '%"+detalhe+"%' 

OR ano LIKE '%"+detalhe+"%'";; 
rs = statement.executeQuery(QueryString); 

Il ne peut tout simplement pas récupérer la valeur, j'interroge.

Information additionnelle: Tableau: dadoslivros Colonnes dont j'ai besoin pour comparer la valeur: Autor, ano.

par exemple lorsque je lance le Href la valeur qui est transmise est: Jules% Verne (i gess il change ESPACES avec « % »

+2

Nice [trou d'injection SQL] (http://bobby-tables.com). Profitez d'avoir votre serveur pwn3d. –

+1

La requête fonctionne-t-elle, si vous utilisez le String '" Jules% Verne "' codé en dur? Je pourrais imaginer, le '%' est converti en '% 25' sur le chemin de votre serveur par votre navigateur. – scones

+0

Marc puisque c'est un travail scolaire et que nous commençons tout juste à apprendre ce genre de choses, ce genre de sécurité n'est pas quelque chose que je connais bien, c'est toujours bon à savoir et je vais le changer. – HugoMonteiro

Répondre

1

Utilisation URLDecoder#decode() pour décoder les paramètres de la chaîne de requête

.. .

Vous devriez également envisager d'utiliser un PreparedStatement pour prévenir les attaques SQL injection

+0

J'ai vu le lien que vous m'avez donné mais je ne comprends pas bien, merci encore;) – HugoMonteiro

0

Je l'ai résolu de changer la requête:

String QueryString = "SELECT * FROM dadoslivros WHERE (Data LIKE '%"+detalhe+"%') OR (Autor LIKE '%"+detalhe+"%')";; 

peut-être qu'il peut aider une autre personne;)