我再次被迫在这里寻求答案,因为发生的事情对我来说毫无意义,也许你们会知道发生了什么。
我正在连接到远程 MySQL 服务器,我的问题是我得到一个“列不存在”的错误,让我在下面详细解释一下。
连接后立即检查我的数据库是否正确响应查询,似乎确实如此
st.executeQuery("SET CHARSET latin2");
ResultSet rs = st.executeQuery("SELECT NrKarty, IloscWejsc, OdDnia, DoDnia FROM Karta");
while (rs.next()) {
System.out.println(rs.getString(1));
System.out.println(rs.getInt(2));
System.out.println(rs.getString(3));
System.out.println(rs.getString(4));
}
我得到这样的结果(NrKarty 是这个表的主键)
5230303030303034443030463644323745
10
2012-12-13
2016-05-12
这个结果非常好,一切都很好。当我需要询问该表中特定记录的数据时,问题就开始了,该记录由主键 (NrKarty) 指示。
自然,我的查询看起来像这样
Statement st = conn1.createStatement();
ResultSet rs = st.executeQuery("SELECT IloscWejsc, OdDnia, DoDnia FROM Karta WHERE NrKarty='"+cardCode+"'");
卡代码写得很好。查询也很好:
SELECT IloscWejsc, OdDnia, DoDnia FROM Karta WHERE NrKarty='5230303030303034443030463644323745'
我在 phpMyAdmin 中检查了查询,返回了正确的结果。
但是在java中我得到这个错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'NrKarty' in 'where clause'
老实说,这对我来说毫无意义,也许更聪明的人会明白。有任何想法吗?