首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql在简单查询中引发错误。

问sql在简单查询中引发错误。
EN

Stack Overflow用户
提问于 2015-10-09 20:22:56
回答 2查看 58关注 0票数 2

因此,我得到了一个Java应用程序,它通过JDBC连接到数据库。我现在要做的是从数据库中获取一个特定的条目,以匹配Java an中的输入。

代码语言:javascript
复制
public String getA(String tablename, String input){
String result = null;
try {
    String query = ("select * from " +tablename+ " where name = "+input);
    rs = stt.executeQuery(query);
    while (rs.next()){
        String rsh = rs.getString("Name");
        result = rsh; 
    }
    } catch (Exception acc_ex){
        System.out.println("Acces excpetion in .getA: "+acc_ex);
        return null; 
    } finally {
        return result; 
    }
}

投掷:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '[input-here]' in 'where clause'

其他方法中的查询工作非常好,以同样的方式构造它们。我有什么办法解决这个问题吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-09 20:26:59

这行代码input的字符串值("select * from " +tablename+ " where name = "+input);应该有单引号。

例如,如果您的表名是SomeTable,而输入值是SomeNameValue,那么发送给MySql的查询现在已经写好了.

代码语言:javascript
复制
select * from SomeTable where name = SomeNameValue

这是错误的,应该是这样,单引号周围的值.

代码语言:javascript
复制
select * from SomeTable where name = 'SomeNameValue'

所以我提到的代码行会改为.

代码语言:javascript
复制
String query = ("select * from " +tablename+ " where name = '" +input+ "'");
票数 4
EN

Stack Overflow用户

发布于 2015-10-09 20:29:41

请在输入前后添加单引号:

代码语言:javascript
复制
String query = ("select * from " + tablename + " where name = '" + input + "'");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33046536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档