MySQL 查询错误 SQLException
Posted
技术标签:
【中文标题】MySQL 查询错误 SQLException【英文标题】:MySQL Query Error SQLException 【发布时间】:2014-03-06 10:04:32 【问题描述】:我在尝试将查询请求实现到程序中时遇到了这个问题。不使用此方法连接到数据库可以正常工作,但是,这会引发 SQLException
。
String query = "SELECT EXISTS ( SELECT * FROM usr WHERE username = admin AND password = pass )";
boolean result;
Connection con = null;
try
con = DriverManager.getConnection(url, username, password);
Statement stmt = (Statement) con.createStatement();
ResultSet rs = stmt.executeQuery(query);
result = rs.next();
catch (SQLException e)
throw new RuntimeException("Cannot connect to the database!", e);
finally
System.out.println("Closing the connection.");
if (con != null)
try
con.close();
catch (SQLException ignore)
System.out.println("Unknown Error Connecting to mysql Server!");
我将查询引入到隔离它的方法中。 任何帮助将不胜感激。
【问题讨论】:
研究使用准备好的语句:Link:它们几乎消除了处理引用字符串/varchar 字段的麻烦。在您的情况下,admin
和 pass
没有正确地用单引号括起来。
【参考方案1】:
通常搜索字符串 - 您需要将值单引号 - 因此在 where 子句中替换为 'admin'
和 'pass'
。
【讨论】:
啊,这解决了它,但是,现在它总是返回 true,即使值不正确。有什么想法吗? 不,应该可以。我在我的一个 MySQL 数据库上尝试了一个非常相似的查询并且它有效。现在,结果是 1(存在)或 0(不存在)。您可能想尝试直接对数据库运行查询 - 使用 mysql 命令行。以上是关于MySQL 查询错误 SQLException的主要内容,如果未能解决你的问题,请参考以下文章
PHP MySQL 查询中的 MySQL/Apache 错误