查询中的 MySQLSyntaxErrorException

MySQLSyntaxErrorException in query

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 异常。

我的查询有什么问题?而-

ResultSet rs=st.executeQuery("select * from interest where loginid='1'");

运行 很好。

我无法通过将 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

您必须连接字符串。不在一个字符串中包含参数:

更改为:

ResultSet rs=st.executeQuery("select * from interest where loginid='"+session.getAttribute("loginId")+"'");

或者更好地使用准备好的语句。它可以防止您 sql 注入,您的查询将更容易阅读。

传入从getAttribute返回的值而不是文字值session.getAttribute('loginId')

PreparedStatement preparedStatement = 
            conn.prepareStatement("select * from interest where loginid=?");
preparedStatement.setString(1, session.getAttribute("loginId"));