2012-07-27 2 views
2

나는 뉴스 웹 사이트의 일부 헤드 라인을 데이터베이스에 저장하는 코드를 작성했습니다. 그러나 헤드 라인에는 작은 따옴표와 큰 따옴표가 때때로 포함되어 있으며 테이블에 삽입하려고하면 오류가 발생합니다.MySql을 사용하여 JDBC에서 작은 따옴표 숨기기

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 난 당신이 (는 SQL 명령 이내) 백 슬래시 문자를 벗어날 수 있다고 생각

Statement st = con.createStatement(); 
int val = st.executeUpdate("INSERT into imageinfo(imageurl,title,headline,website) VALUES('"+imageurl+"','"+title+"','"+headline+"','"+website+"')"); 
+0

시도해 보셨습니까? http://www.jguru.com/faq/view.jsp?EID=8881 – Matthias

+0

그 방법을 사용할 때의 문제점은 DB에 수동으로 뭔가를 삽입하지 않는다는 것입니다. 그래서 저는 인용 부호를 백 슬래시로 빠져 나올 수 없습니다. – Sid

답변

4

SQL 쿼리가 사전 컴파일되는 Prepared Statements을 사용해야합니다. 처음부터 데이터가 어디서 오는지에 따라 SQL 인젝션을 방지 할 수 있습니다.

준비된 문을 사용하는 또 다른 장점은 실행할 때마다 다른 매개 변수로 동일한 문을 다시 사용할 수 있다는 것입니다.

0

...

또 다른 방법은 작은 따옴표를 포함하는 값을 묶어야하는 것입니다 : 여기

내 코드입니다 큰 따옴표.