session.getAttribute('loginId')//giving 1
ResultSet rs=st.executeQuery("select * from interest where loginid='session.getAttribute('loginId')'");
或
ResultSet rs=st.executeQuery("select * from interest where loginid='session.getAttribute("loginId")'");
这给了我sql Exception。
我的查询中有什么问题?而 -
ResultSet rs=st.executeQuery("select * from interest where loginid='1'");
运行正常。
我不能通过在String Object中存储loginId来调用它。
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 'loginId')'' at line 1
答案 0 :(得分:2)
传递从getAttribute
返回的值,而不是文字值session.getAttribute('loginId')
PreparedStatement preparedStatement =
conn.prepareStatement("select * from interest where loginid=?");
preparedStatement.setString(1, session.getAttribute("loginId"));
答案 1 :(得分:-1)
你必须连接字符串。不将参数包含在一个字符串中:
更改为:
ResultSet rs=st.executeQuery("select * from interest where loginid='"+session.getAttribute("loginId")+"'");
或者更好地使用准备好的陈述。它会阻止你进行sql注入,你的查询将更容易阅读。