jwradheMedlem sedan juni 2002711 inlägg 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 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 händer det, då går allt åt helvete :)
dAEkMedlem sedan feb. 20041 816 inlägg 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 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 Jo, jag kom på det efteråt. Jo, faktiskt! ;)
Synd att koden blir så "smutsig" bara.