(debutant) recup d'une variable et insertion ds un requete SQL

snatch12 Messages postés 11 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 28 août 2003 - 19 juin 2003 à 15:09
 imanebachiri - 18 mai 2013 à 23:08
bonjour tous :)

voila je souhaite inserer ds une requete SQL(INSERT) une variable "nom" recuperée d'un formulaire utilisateur

voila le source que j'utilise pour la requete INSERT
-------------------------------------------------------
<!-- appel de la connexion -->
<% Connection con = DriverManager.getConnection(url,user,password); %>

<!-- recup de la variable "nom" saisi par l'utilisateur -->
<% String nomsaisi = request.getParameter("nom"); %>

<!-- la requète SQL -->
<!-- c'est ICI !!! que ca marche pas la valeur rentrée ds ma base est : + nomsaisi + -->
<% String queryString ="insert into test1 (nom,prenom,type,dpt) values (' + nomsaisi + ','testprenom','testtype','testdpt')"; %>

<%
Statement stmt = con.createStatement();
stmt.executeUpdate(queryString);
%>
-------------------------------

j'ai esayer pleins de trucs et impossible de rentrer la donnée utilisateur ds ma requete.

9 réponses

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
19 juin 2003 à 17:27
salut,
<% String queryString ="insert into test1 (nom,prenom,type,dpt) values (' "+ nomsaisi + "','testprenom','testtype','testdpt')"; %>
Duss
0
snatch12 Messages postés 11 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 28 août 2003
20 juin 2003 à 09:41
bonjour Mr Duss :)

en fait ca me crée une erreur cette syntaxe :(
voila l'erreur générée, je sais que en php c'est possible de faire ca, mais en jsp apparement ca passe pas :(

---------------------------------------------
description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: An illegal character has been found in the statement.
---------------------------------------------

sinon j'avais trouvé une variante hier, mais g toujour un soucis :
dans ma Bdd j'ai une table et 4 colonnes
3 définies en Char et une en Integer (le "type" est en Integer)
la formule ci dessous marche tres bien pour les prep.setString, (les données utilisateur sont bien insérées dans la base) mais j'arrive pas a entrer ma donnée prep.setInt --> erreur il lit ca comme un string et meme avec un cast ca marche pas :(
voila la scriplet
--------------------------
PreparedStatement prep = con.prepareStatement("insert into test1(type,dpt,nom,prenom) values (?, ?, ?, ?)");
prep.setInt(1, request.getParameter("type"));
prep.setString(2, request.getParameter("dpt"));
prep.setString(3, request.getParameter("nom"));
prep.setString(4, request.getParameter("prenom"));
prep.executeUpdate();
------------------------------

voila, je pensais avoir resolu mon probleme....... :(
0
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
20 juin 2003 à 09:53
salut,
ben tu fais un
prep.setInt(1, Integer.parseInt(request.getParameter("type")));
Duss
0
snatch12 Messages postés 11 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 28 août 2003
20 juin 2003 à 11:33
-------------------------------
Réponse au message :
-------------------------------

> salut,
> ben tu fais un
> prep.setInt(1, Integer.parseInt(request.getParameter("type")));
> Duss

ca me crée aussi une erreur !!
----------------------
java.lang.NumberFormatException: For input string: "20
"
----------------------
je comprend pas...
poutant ds ma bdd informix, la colonne est bien définie en integer......

o fait francois, je suis un des gars de l'afpa, a qui tu as donné des cours UML il y a peu de temps (section de francoise Clary ) ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
20 juin 2003 à 13:54
ben la c est pas normal du tout !!
tu n as pas d autres caracteres que 20 dans ton string ?
par exemple un retour a la ligne ou autre ?
Duss
0
snatch12 Messages postés 11 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 28 août 2003
20 juin 2003 à 14:53
ben ca devait être ca, je vois pas autre chose non plus...

En fait je me suis retapé tout le code et la maintenant ca marche !!! :)
raaaa les mysteres de l'informatique !! :p

lool !! en tout K, Merci pour le coup de main, je commencais a désespérer ...
bon week end.;)
0
issam2003 Messages postés 6 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 19 janvier 2007
19 juil. 2005 à 16:41
voici un exemple et sur ca va marcher


String query" SELECT ID_DIR FROM UTILISATEUR WHERE ID_USER '" + id + "'" ; id c'est la var bien sur
have a nice day

Open mind for the different view....libirate yourself
0
issam2003 Messages postés 6 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 19 janvier 2007
19 juil. 2005 à 16:41
voici un exemple et sur ca va marcher


String query" SELECT ID_DIR FROM UTILISATEUR WHERE ID_USER '" + id + "'" ; id c'est la var bien sur
have a nice day

Open mind for the different view....libirate yourself
0
imanebachiri
18 mai 2013 à 23:08
Bonjour tout le monde,
j'ai le même problème ma requête :
ResultSet resultat=state2.executeQuery("select nomencadrant from encadrantexterne where matriculee = '"+num+"'"); avec num un [b]entier
/b
merci d'avance pour vos réponses .
0