Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在mysql中插入变量_Java_Mysql_Database - Fatal编程技术网

Java 在mysql中插入变量

Java 在mysql中插入变量,java,mysql,database,Java,Mysql,Database,我正在尝试发送获取的城市是拉合尔的餐馆,Rwp等(用户将在表单中输入的内容)。 但我什么也没得到。 如果我在查询中硬编码并自己输入城市名称,那么它会工作,否则它不会返回任何内容。 当我尝试添加任何内容时,我也会遇到同样的问题 基本上我需要在mysql查询中使用变量的帮助 我做错了什么 public ResultSet getRestaurants(String city){ Statement statement; try { statement = con.cr

我正在尝试发送获取的城市是拉合尔的餐馆,Rwp等(用户将在表单中输入的内容)。 但我什么也没得到。 如果我在查询中硬编码并自己输入城市名称,那么它会工作,否则它不会返回任何内容。 当我尝试添加任何内容时,我也会遇到同样的问题

基本上我需要在mysql查询中使用变量的帮助

我做错了什么

public ResultSet getRestaurants(String city){
    Statement statement;
    try {
        statement = con.createStatement();
        String query = "select * from restaurantinfo WHERE city = '"+city+"'";
        ResultSet rs = statement.executeQuery(query);
        return rs;
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
    }       
}
这是处理结果集。我知道有错误。我会修复它们。我关心的是显示餐厅



按菜系筛选
快餐
巴基斯坦语
  • 交货期: 免费的

首先-您传递结果集而不是直接处理结果集似乎有些奇怪。请共享处理结果集的代码-可能错误就在这一部分

您的方法:请使用PraveReDeX代替此变体:

public ResultSet getRestaurants(String city){
    try {
        System.out.println("CITY: " + city);
        PreparedStatement ps = con.prepareStatement(
             "select * from restaurantinfo WHERE city = ?");
        //Set first ? with value of city
        ps.setString(1, city);
        //return resultset
        return statement.executeQuery(query);
    } catch (SQLException e) {
        e.printStackTrace();
        return null;
    }       
}

非常感谢@jan的帮助

顺便说一句,我把名字改成了“cityname”就解决了这个问题。我不知道为什么它会起作用。。 是的,另一个数据库也通过添加name属性来工作

为此,我将city更改为cityname。虽然很奇怪,但它确实有效。我认为id和名称可能应该不同。当然,我还必须更改请求参数

<input id="city"  type="text" name="cityname" />


一般来说,看起来不错。city是否有任何前导/尾随空格?可能有助于在运行查询之前打印出查询,并准确查看其外观。我已添加了处理结果集的代码。我已编辑了帖子。我已添加了处理结果集的代码。我已编辑了“city”的帖子参数实际上是一个字符串?你是从组合框()中得到的吗还是从一个输入字段?如果你从一个组合框中得到它,你应该考虑将ID分配给城市并由这些ID查询。一个编辑:打印出我们放在SQL语句中的城市。我最好的猜测是,你有编码故障,所以你收到一些与你的数据库中不匹配的字符串。它的打印无效。我使用输入字段BTW。