문자열이 포함 된 sqlite 데이터베이스가 있습니다. 내 javafx 인터페이스에서 해당 문자열을 읽고있다. 모든 것이 순조롭게 진행되고 있지만 문제는 아포스트로피로 문자열을 읽으려고 할 때입니다. 내가 질문 문자열을 반환하고 라벨 gui.question에 추가 할 수있는 쿼리를 peform받는 위의 코드에서아포스트로피가있는 Sqlite 텍스트 읽기
String sql = "select * from Questions where Subject = ? and Grade = ? and Level = ? and questionId = ?";
PreparedStatement pst = gui.connectionQuestions.prepareStatement(sql);
pst.setString(1,gui.textSubjectQTest);
pst.setString(2,gui.showGradeLabel.getText());
pst.setString(3,gui.showCurrentLevelLabel.getText())
pst.setString(4,list.get(counter));
ResultSet rs = pst.executeQuery();
if(rs.next())
{
String temp = rs.getString("Question");
gui.question.setText(temp);
...
sql = "Update Questions set Used ='"+1+"' where Question = '"+gui.question.getText().replaceAll("'", "/'")+"'";
pst = gui.connectionQuestions.prepareStatement(sql);
pst.execute();
: 문자열을 읽어 내 코드는 다음과 같다. 그러나 아포스트로피에 나는 다음과 같은 오류가 발생하고 인해 (I 인해 마지막 줄에 오류가 발생했습니다) :
. 나는이 방식이 작동 이중 아포스트로피를 사용하여 문자를 탈출을 시도하지만 내 문자열을 변경합니다?.[SQLITE_ERROR] SQL 오류 또는 누락 된 데이터베이스 (근처 "(": 구문 오류)
는 그러나 나는 내 확률값은 아직도 내가 아포스트로피와 함께 일을 해결할 수있는 방법 남아 솔루션 from here을 따라
수정을 시도 아포스트로피를 두 배로하는 것은 유용하지 않습니다.
어디서 오류가 발생하며 여기에 어떤 값이 있습니까? –
내 질문을 편집 할 때 pst.execute(); 오류가 발생했습니다. – konstantin
아 - 전에 전혀 게시하지 않은 코드입니다. 그렇습니다. 매개 변수화 된 SQL을 사용해야합니다. 항상 * 알 수없는 값을 SQL 문자열에 직접 포함하는 대신 매개 변수화 된 SQL을 사용하십시오. 첫 번째 쿼리에 대해 매개 변수화 된 SQL을 사용하는 이유는 확실하지 않지만 두 번째 쿼리에 대해서는 중지해야합니다 ... –