# INSERT String enthält ' wie kann man das Escapen?



## DarkNemesis (27. Jun 2007)

Mein INSERT String wird aus einer CSV gelesen und enthält schon mal sowas wie "dumm's" im String, was MySQL bei meinem INSERT so garnicht schmeckt.

Gibt es da eine möglichkeit es zu Escapen oder ähnliches?

So sieht der code teil bei mir aus:

```
Connection conn = null;
				String treiber = "com.mysql.jdbc.Driver"; 
				String url = "jdbc:mysql://localhost:3306/csv_test"; 
				String userName = "root";
				String password = "root";

......

String SqlInsert = "INSERT INTO `report_productgroup` (`Product group ID`, `Parent product group ID`, `Language`, `Short Description`, `Language (DE)`, `Short Description (DE)`, `Long Description (DE)`) VALUES ('"+daten[0]+"', '"+daten[1]+"', '"+daten[2]+"', '"+daten[3]+"', '"+daten[4]+"', '"+daten[5]+"', '"+daten[6]+"') ";

.....

Class.forName ( treiber ).newInstance (); 
					conn = DriverManager.getConnection (url, userName, password);
```


----------



## EOB (27. Jun 2007)

was schmeckt ihm denn nicht? hast du versucht, es zu escapen? man könnte auch alle ' durch nichts ersetzen.

grüße


----------



## hupfdule (27. Jun 2007)

Das Apostroph verdoppeln. Ist im SQL-Standard so festgelegt.


----------



## DarkNemesis (27. Jun 2007)

Durch nichts ersetzen wäre keine Lösung, was ihm nicht geschmeckt hat waren eben die ' im String welche ich dann mit replaceALL hab durch \\\\' escapen lassen, mein anfänglicher fehler war es nur mit \\' zu versuchen


----------



## HoaX (27. Jun 2007)

nimm doch einfach ein PreparedStatement ...


----------

