2013-06-05 6 views
0

У меня есть таблица, где есть столбец с этим именем: бюро d'étudeвыбрать имя столбца с apostroph из базы данных MySQL

Когда я избранная:

String sql = "select bureau d'étude from table"; 

сервер покажите мне синтаксическую ошибку. Как скрыть или заменить этот апостроф?

+0

это ошибка из-за пространства между 'bureau' и 'd'étude'. Попробуйте 'select \' bureau d''étude \ ' – Farlan

ответ

2
String sql = "select `bureau d''étude` from table"; 

Поскольку в названии столбца есть пробел, обязательно инкапсулируйте его в `.

Кроме того, вы можете избежать одиночной кавычки с другой отдельной цитатой.

3

Вы должны действительно использовать PreparedStatement, чтобы избежать этих проблем, и, таким образом, SQL инъекции:

PreparedStatement statementSelect; 

String sql = "select ? from ?"; 

try 
{ 
    statementSelect = myConnection.prepareStatement(sql); 

    statementSelect.setString(1,"bureau d'étude"); 
    statementSelect.setString(2,"table"); 
    statementSelect.executeQuery(); 
} 
catch (SQLException e) 
{ 
    //handle this 
} 
+0

Я использую действительно подготовленный оператор. я положил? в выражении WHERE, и потому, что я работаю с jdbcTemplate, и я должен получить результат в компоненте getters и sitters, это решение делает мой код очень большим. Спасибо – Somar

1

Вы можете попробовать следующее:

String sql = "select [bureau d''étude] from table"; 
Смежные вопросы