2011-03-21 5 views
1

where 절에서 문자열 변수를 사용하는 java에 sql 문을 작성하려고합니다. 이 작업을 수행하는 데 여러 가지 방법을 시도했지만 적절한 구문을 사용하지 않는다고 계속 말합니다. 누군가 이걸 할 수있는 올바른 방법을 말해 줄 수 있습니까? 이 쿼리의 변수는 par_id입니다.Java에서 sql 문에 변수 추가

문자열 sql2 = "SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id = +" 'par_id' "+ ORDER BY creation_time asc";

+0

를 사용? O.o –

답변

-1

시도 :

"SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id = '" 
+ par_id 
+ "' ORDER BY creation_time asc"; 
+0

아니요, 실행하지 마십시오 –

+0

-1이 접근법을 계속 진행하지 말아야합니다/이와 같은 경우에 전파하십시오. –

+0

내 잘못이야! 그냥 구문 오류를 수정하려고! –

10

는 PHP에서 오는 PreparedStatement의

PreparedStatement ps = connection.prepareStatement("SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id = ? ORDER BY creation_time asc"); 
ps.setObject(1, par_id); 
+1

+1은 SQL 삽입 공격을 방지합니다. –

+0

안녕하세요 Suresh, 임 여전히 null 포인터 예외가 발생합니다. –

+0

및 null 포인터 예외가 어떤 줄에 있습니까? – MeBigFatGuy

0
PreparedStatement ps = connection.prepareStatement(
    "SELECT * FROM Tennis1294966077108.container_tbl " + 
    "WHERE parent_id = ? ORDER BY creation_time asc"); 
ps.setInt(1, par_id); 
0
String sql2 = "SELECT * FROM Tennis1294966077108.container_tbl WHERE parent_id='"+par_id+"' 
ORDER BY creation_time asc"; 
+1

SQL 문에 데이터를 전달할 때 문자열 연결을 사용하지 마십시오. 이것은 SQL 인젝션에 취약합니다. –

+0

확인. 알려 줘서 고마워! – Akki