# Fehler bei  dem Zeichen '



## tuffi (19. Jun 2004)

hallo,

wenn ich einen eintrag in meine mysql-db speichern will, der das zeichen  '  enthält, bekomme ich logischerweise eine exception.
wie kann ich string mit diesem zeichen trotzdem speichern?

die funktion - angewendet auf die zu speichernden strings - 

```
private static String q(String string) {
		return string.replaceAll("'", "\'");
	}
```
liefert keinen erfolg.  :cry: 

vielen dank.


----------



## KSG9|sebastian (19. Jun 2004)

ähm, wie sieht dein insert aus?

String sql = "INSERT INTO tabelle(a, b) VALUES ('"+string+"',"+integer+")";


----------



## tuffi (20. Jun 2004)

mein insert sieht so aus:


```
String sql = new String("INSERT INTO tabelle SET xx='"+ e.getX() + "', yy='" + e.getY()+ "';");
```

jetzt wollte ich um jedes getX() und getY() ne methode setzten, die mir aus  '  ein  \'  macht.
vielleicht gibt es ja ne andere lösung...???


----------



## Jaraz (20. Jun 2004)

tuffi hat gesagt.:
			
		

> mein insert sieht so aus:
> 
> 
> ```
> ...



Am einfachsten PreparedStatement nutzen!
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html

Gruß Jaraz


----------



## Guest (25. Jun 2004)

tuffi hat gesagt.:
			
		

> hallo,
> 
> wenn ich einen eintrag in meine mysql-db speichern will, der das zeichen  '  enthält, bekomme ich logischerweise eine exception.
> wie kann ich string mit diesem zeichen trotzdem speichern?
> ...



Vor langer unheimlich grauer Zeit, hatte ich dies mal einem Access-RDBMS mitgeteilt, welches Verständnis zeigte. 

Möglicherweise hilft Dir das weiter...

befehl.executeUpdate("INSERT INTO Adressen (NAME, VORNAME, STRASSE_NR, PLZ, ORT, EMAIL) VALUES (\'"+address.name+"\', \'"+address.vorname+"\', \'"+address.strasseNr+"\', \'"+address.plz+"\', \'"+address.ort+"\', \'"+address.email+"\');");


----------



## ZeusOfCrete (5. Jul 2004)

Hallo Tuffi,

zum Replacen könntest Du folgende Methode nehmen:



```
class Replace
{
  public static String replace( String s, String search, String replace )
  {
    int start = 0, pos = 0;
    StringBuffer result = new StringBuffer( s.length() );
    while ( (pos = s.indexOf(search, start)) >= 0 )
    {
      result.append( s.substring(start, pos) );
      result.append( replace );
      start = pos + search.length();
    }
    result.append( s.substring(start) );
    
    return result.toString();
  }
  
}
```

String s ist der original String, search = "'" (einmal '),  und replace = "''" (zweimal '').
Ein \' funktioniert nicht, es muß '' sein, dann klappts mit dem SQL   

Gruß

Zeus


----------

