Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como escapar caracteres de aspas no MySQL e Java


Deixa eu tentar entender...

O arquivo de entrada contém aspas. Você deseja enviá-lo para um banco de dados. Quando você recuperá-lo do banco de dados, ainda deseja que essas cotações estejam lá.

Então, é apenas para/do banco de dados que você está tendo seu problema?

Se sim, então eu altamente suspeito que você está fazendo algo na ordem de:(Estou envolvendo-o em um aviso legal para evitar que os desavisados ​​entendam mal e cortem / colem em seus próprios aplicativos.;))

Ruim - não faça isso

String sql = "insert into foo (bar,baz) values(" +myValue1 + ", " + myValue2 + ")";
Statement stmt = connection.createStatement();
stmt.executeUpdate(sql);

Ruim - não faça isso


Em caso afirmativo, você deve realmente estar usando os parâmetros da instrução preparada no mínimo. a) você estará menos vulnerável ao lixo malicioso excluindo todas as suas tabelas, eb) você não terá nenhum problema de escape.
String sql = "insert into foo (bar, baz) values( ?, ? )";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, myValue1);
stmt.setString(2, myValue2);
stmt.executeUpdate();

Observe que também é mais seguro no caso de coisas como CLOBs e especificidades de diferentes implementações de banco de dados (estou pensando em você, Oracle>))

Se for algum outro tipo de escape, ou seja, de/para XML ou de/para HTML, isso é diferente, mas está bem documentado em toda a web.

Ou forneça algum código de exemplo se eu estiver totalmente fora da base.