String sql = "SELECT (Employee_name, Password) FROM employee WHERE (Employee_name = '"+name+"' AND Password = '"+password+"')";
1列(S)和收到以下異常在JSP java.sql.SQLException中的插入操作數應包含1列(S)操作數應包含在Java
請幫助。
String sql = "SELECT (Employee_name, Password) FROM employee WHERE (Employee_name = '"+name+"' AND Password = '"+password+"')";
1列(S)和收到以下異常在JSP java.sql.SQLException中的插入操作數應包含1列(S)操作數應包含在Java
請幫助。
正確的方法是
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)
會發生什麼你的查詢必須是這樣的:
String sql = "SELECT Employee_name, Password
FROM employee
WHERE (Employee_name = '"+name+"'
AND Password = '"+password+"')";
卸下支架,它會工作。
String sql = "SELECT Employee_name, Password
FROM employee WHERE Employee_name = '"+name+"'
AND Password = '"+password+"'";
一般我們使用支架時,我們需要添加嵌套查詢和組合的條件。如果您爲列名稱添加括號,則Mysql將其標識爲單列。這就是爲什麼錯誤出現的原因。
從您的'SELECT'列表中刪除括號。 – eggyal
如果用戶輸入了名稱和密碼,請記住清理名稱和密碼的值。否則,它可能使您容易受到SQL注入的影響。 – Niklas
非常感謝4回覆:) – user3507176