Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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 JDBC查询中的错误 sql=“从特殊牛奶价格中选择牛奶价格” 其中代码_生产者_id=?和有效_from=?”_Java_Sql_Jdbc - Fatal编程技术网

Java JDBC查询中的错误 sql=“从特殊牛奶价格中选择牛奶价格” 其中代码_生产者_id=?和有效_from=?”

Java JDBC查询中的错误 sql=“从特殊牛奶价格中选择牛奶价格” 其中代码_生产者_id=?和有效_from=?”,java,sql,jdbc,Java,Sql,Jdbc,在我的JDBC代码中,我在这个查询中遇到了错误 异常:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用接近“”的正确语法?第1行的有效_from=?' 但是,当我在MySQL命令提示符下使用一些值运行它时,它在那里运行得很好。您必须使用准备好的语句而不是“普通”语句,才能将问号替换为参数 sql = "select milk_rate from spec

在我的JDBC代码中,我在这个查询中遇到了错误

异常:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用接近“”的正确语法?第1行的有效_from=?'


但是,当我在MySQL命令提示符下使用一些值运行它时,它在那里运行得很好。

您必须使用准备好的语句而不是“普通”语句,才能将问号替换为参数

sql  = "select milk_rate from special_milk_rate 
        where code_producer_id=? and effective_from <= ? 
        and effective_till >= ?"
这是不正确的。它应该是executeQuery()


当使用语句时,将传递sql以执行。当使用绑定变量时,它会被传递到PreparedStatement。由于您使用的是语句API,JDBC在执行时没有替换绑定变量,也不知道如何处理文本问号。

您应该添加诸如
mysql
JDBC
sql
之类的标记以获得更多答案。查询很好,您的PreparedStatement有问题。显示Java代码。嘿,有人能告诉我这个查询是什么吗?嗨,我正在使用preparestatement我的代码是sql=“从特殊牛奶价格中选择牛奶价格,其中代码为生产商id=”?并且有效地避免在你准备好的陈述中使用单引号。@Costis是正确的。此外,您似乎缺少每条语句后面的分号。
ResultSet rst= prest.executeQuery(sql);