何が起こるかは私にはまったく理解できないので、ここでも答えを探すことを余儀なくされています。
私はリモートの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'
そして正直なところ、それは私には意味がありません。何か案は?