2014-04-23 2 views
2
String sql = "SELECT (Employee_name, Password) FROM employee WHERE (Employee_name = '"+name+"' AND Password = '"+password+"')"; 

1 열 (들)을 포함해야하며, JSP java.sql.SQLException의 삽입 연산에 다음과 같은 예외를 얻는 것은 도와주세요피연산자는 자바

1 열 (들)을 포함해야합니다.

+0

'SELECT' 목록에서 괄호를 제거하십시오. – eggyal

+0

또한 사용자가 입력 한 이름과 비밀번호의 값을 삭제해야합니다. 그렇지 않으면 SQL 인젝션에 취약해질 수 있습니다. – Niklas

+0

고마워요 4 통해 답변 : – user3507176

답변

3

올바른 방법은 당신이 ()을 유지할 수 있습니다

String sql = "SELECT Employee_name, Password FROM employee WHERE Employee_name = '"+name+"' AND Password = '"+password+"'"; 

이다 조항이 아닌 선택 목록입니다. 이 사건

mysql> select (firstname,email) from users limit 1 ; 
ERROR 1241 (21000): Operand should contain 1 column(s) 
0

에서 일어나는 것입니다 귀하의 질문이되어야합니다

String sql = "SELECT Employee_name, Password 
        FROM employee 
        WHERE (Employee_name = '"+name+"' 
        AND Password = '"+password+"')"; 
1

하는 브래킷을 제거하고 작동합니다.

String sql = "SELECT Employee_name, Password 
      FROM employee WHERE Employee_name = '"+name+"' 
         AND Password = '"+password+"'"; 

일반적으로 우리는 중첩 쿼리를 추가하고 조건을 결합해야 할 때 대괄호를 사용합니다. Mysql은 열 이름에 대괄호를 추가하여이를 단일 열로 식별했습니다. 그게 왜 오류가 나옵니까.

관련 문제