[java] Verwijderen tekens '

Pagina: 1
Acties:
  • 150 views sinds 30-01-2008
  • Reageer

  • josteman
  • Registratie: Mei 2002
  • Laatst online: 21-12-2022
Ik heb een java programma dat gebruik maakt van een MySQL database. Dit werkt goed alleen als er iemand in het invoerveld (JTextField) een text invoert met het teken ' dan gaat het fout. Nu heb ik al geprobeerd om de waarde van het textfield te replacen (sInvoer = sInvoer.replace("'", "\\'"); ) maar dit werkt niet. Weet iemand er een oplossing op?

Groeten Josteman

Boei


  • 418O2
  • Registratie: November 2001
  • Laatst online: 00:26
kweenie of het zo in java werkt, maar met php werkt
PHP:
1
2
3
$var = "asadasd'asdasd";
$var = str_replace("'", "", $var);
echo "Var is $var";

wel.. dus ipv de 2e \\ gewoon nix invullen, werkt dat niet gewoon ?

[ Voor 30% gewijzigd door 418O2 op 13-03-2004 19:48 ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

"dan gaat het fout" ?

Wat gaat er waar fout?
Als jij ervoor zorgt dat je ingevoerde query-string gewoon correct is, gaat het niet fout. De ' door \' vervangen is in principe een voldoende aanpak, maar je kan ook de prepared-statements gebruiken of de ' door '' vervangen en/of kijken of mysql-jdbc-driver een aparte string-escape-functie aanbiedt.

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 27-05 14:59
sommige drivers implementeren een quotedPreparedSTatement of iets in die aard

dat zou je probleem moeten oplossen

"Live as if you were to die tomorrow. Learn as if you were to live forever"


  • Pinobigbird
  • Registratie: Januari 2002
  • Laatst online: 23:16

Pinobigbird

doesn't share food!

Java:
1
sInvoer = sInvoer.replaceAll( "'", "" );

Let dus op de All en de lege "".

Joey: Nice try. See the Netherlands is this make believe place where Peter Pan and Tinkerbell come from.
https://kattenoppasleiderdorp.nl
PV: 3080Wp ZO + 3465Wp NW = 6545Wp totaal 13°tilt


  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 27-05 14:59
ja maar als je dan in je tekst een ' gebruik bv: 's morgens... dan heb je die gewoon niet meer en ook geen manier om die terug te zetten achteraf...

"Live as if you were to die tomorrow. Learn as if you were to live forever"


  • Buzzin Hornet
  • Registratie: September 2002
  • Niet online
code:
1
sInvoer = sInvoer.replaceAll( "\\\'", "" );


Het is iets met meerdere slashes iig :) ik heb dit vandeweek nog op school gehad en daar was het 3 of 4 slashes!

[ Voor 14% gewijzigd door Buzzin Hornet op 14-03-2004 13:48 . Reden: tags aangepast ]

I intend to live forever - so far, so good.


  • B-Man
  • Registratie: Februari 2000
  • Niet online
Je hoeft de backslash niet te escapen:

Java:
1
2
sInvoer.replaceAll("\"", "\\\""); // plaats een backslash voor een dubbele quote
sInvoer.replaceAll("'", "\'"); // plaats een backslash voor een enkele quote

[ Voor 28% gewijzigd door B-Man op 14-03-2004 14:12 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

B-Man schreef op 14 maart 2004 @ 14:11:
Je hoeft de backslash niet te escapen:
het is good practice om de backspace altijd te escapen als je 'm nodig hebt, dit voorkomt verwarring (en bovendien warnings of zelfs foute strings op sommige compilers, niet elke taal gedraagt zich als dat gedrocht wat men php noemt)

[ Voor 4% gewijzigd door .oisyn op 14-03-2004 14:53 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • B-Man
  • Registratie: Februari 2000
  • Niet online
.oisyn schreef op 14 maart 2004 @ 14:53:
[...]


het is good practice om de backspace altijd te escapen als je 'm nodig hebt, dit voorkomt verwarring (en bovendien warnings of zelfs foute strings op sommige compilers, niet elke taal gedraagt zich als dat gedrocht wat men php noemt)
Interpretatie is ook een kunst ;)

Waar zie je dat ik het over PHP heb? We hebben het hier over java!.

Ik gaf hem alleen maar de oplossing die hij zoekt: je hoeft binnen java de backslash niet te escapen: ik gebruik de code die ik net postte zelf. Als ik de backslash escape werkt het simpelweg niet. Dan kun je wel hard roepen dat het altijd moet, maar het werkt niet.

offtopic:
En ja, ik weet heus wel dat het in php verstandig is altijd te escapen, al zou het alleen al zijn vanwege het feit dat er veel mensen zijn die hun queries als string opbouwen, en er zonder "filter" direct GET variabelen inknallen.

[ Voor 19% gewijzigd door B-Man op 14-03-2004 16:27 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Hier zijn toch juist PreparedStatement classes voor? Waarom het dan zelf doen (en onnauwkeurig de ; vergeten)
Pagina: 1