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

1列(S)和收到以下異常在JSP java.sql.SQLException中的插入操作數應包含1列(S)操作數應包含在Java

請幫助。

+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+"'"; 

你可以保持()的where子句,但不是在選擇列表中。 這是你的情況

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將其標識爲單列。這就是爲什麼錯誤出現的原因。