2013-01-30 2 views
0

나는 두 개의 열 사용자 이름암호USERS 표로 가지고 있습니다. 사용자 이름의 암호를으로 가져와 프로그램의 다른 값과 비교하는 방법은 무엇입니까?암호 열에서 문자열 값을 선택하는 SQL 쿼리?

이것이 내가 얻은 것입니다. 그러나, 일식은 나에게 오류를 제공합니다

String sql = "SELECT username, password FROM USERS WHERE username = ?"; 

오류 :

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1

+5

** 암호를 일반 텍스트로 저장하지 마십시오. ** – SLaks

+0

데이터베이스에서 보안을 강화하려면 어떻게합니까? – AppSensei

+1

im은? 앞뒤에 작은 따옴표를 써야한다고 추측합니다. 이렇게 "SELECT username, username에서 username username = '?' " – Weddy

답변

3

당신은 당신의 SQL 문을 준비하고 매개 변수 ?를 결합 또는 쿼리를 실행하기 전에 username의 실제 값과 SQL을 구성해야 하나.

전자는 SQL 주입을 피하는 방법입니다.

+0

(하지만 실제로는 전자) –

+0

정확합니다. 답변에 추가되었습니다. 감사. – peterm

관련 문제