我再次被迫在这里寻求答案,因为所发生的事情对我来说没有任何意义,也许你们会知道发生了什么。
我正在连接远程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'
老实说,这对我来说没有任何意义,也许有人会更聪明地得到它。有什么想法吗?
答案 0 :(得分:1)
嗯,就像我想的那样,它很简单,愚蠢,与我所犯的所有错误相似:D,在一个查询的正下方,我有另一个不正确的错误,它是那个抛出错误的错误虽然我认为这是另一个,但也许如果我更仔细地看待编译结果,我会知道,对不起那些人。
正确的查询应该如下所示(在另一个表中,抛出错误的那个)
SELECT Zajecie_idZajecia FROM KartaZajecie WHERE Karta_NrKarty='5230303030303034443030463644323745'