webForumDet fria alternativet

Någon slags replace.

5 svar · 632 visningar · startad av jwradhe

jwradheMedlem sedan juni 2002711 inlägg
#1

Behöver lite hjälp med någon slags replace funktion, vet dock inte om det går att göra i jsp eller js.

Jag har ett formulär, där ett fält är errandnumbers, där ska man kunna skriva in tex "54548,545484,54548,545454,5454" och sen vill jag att nån funkis ska byta ut -> , <- tecknet mot -> ' or PRHeader.PrId = ' <-. För att sedan kunna använda det omgjorda värdet i errandnumbers till en SQL sträng.

Hur fasen ska man göra detta tycker ni?
Kan man göra js i javakod?

spangoMedlem sedan juni 20008 205 inlägg
#2

http://java.sun.com/javase/6/docs/api/java/lang/String.html#replace(java.lang.CharSequence,%20java.lang.CharSequence)

red. Sen är vanlig replace inte bra alls eftersom det öppnar för SQL-injektion. Vad händer om jag skriver in 0; DROP TABLE PRHeader; -- i errandnumbers?

jwradheMedlem sedan juni 2002711 inlägg
#3

händer det, då går allt åt helvete :)

dAEkMedlem sedan feb. 20041 816 inlägg
#4

Intressant fråga. Hur hanterar man situationer där man bestämt vill använda prepared statements men samtidigt vill ha dynamiska parametrar, ungefär som i jwradhes fall här?

Det känns som att JDBC inte riktigt når ända fram, eller har jag missat nåt?

spangoMedlem sedan juni 20008 205 inlägg
#5

Man får trixa lite med strängbyggande och hålla reda på hur många parametrar man lägger in.

Collection<int> ids = whatever.getThatFunkyStuff();
StringBuilder buf = new StringBuilder("SELECT * FROM PRHeader WHERE PrId IN (");
for (int i = 0; i < ids.length(); i++) buf.append(i == 0 ? "?" : ", ?");
buf.append(')');
PreparedStatement ps = connection.prepareStatement(buf.toString());
int pos = 0;
for (int id : ids) ps.setInt(++pos, id);
dAEkMedlem sedan feb. 20041 816 inlägg
#6

Jo, jag kom på det efteråt. Jo, faktiskt! ;)
Synd att koden blir så "smutsig" bara.

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)