2

我再次被迫在这里寻求答案,因为发生的事情对我来说毫无意义,也许你们会知道发生了什么。

我正在连接到远程 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'

老实说,这对我来说毫无意义,也许更聪明的人会明白。有任何想法吗?

4

1 回答 1

1

好吧,就像我想的那样,它很简单,很愚蠢,并且与我所做的所有错误非常相似:D,在那个查询的正下方,我有另一个不正确的查询,它是在我想的时候抛出错误的那个一直都是另一个,也许如果我更仔细地查看编译结果,我会知道的,抱歉。

正确的查询应该是这样的(在另一个表中,抛出错误的那个)

SELECT Zajecie_idZajecia FROM KartaZajecie WHERE Karta_NrKarty='5230303030303034443030463644323745'
于 2012-12-22T22:32:46.340 回答