问题描述
今天我刚写一个小小的webproject学习Mysql的条件查询。 结果出来这样的错误。 出错提示:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='abc'' at line 1。 (其中‘abc’是我执行查询时输入的数据),我想问题应该出在图二所示的代码里,但不知怎么更正。 运行环境:MyEclipse7+tomcat6+jdk5+mysql5。图1:index页面 图二:part_result(从index页面得到参数查询数据库) 图三:BD_result(取得查询结果给servlet) 图四:QyeryDB_servlet将查询参数传给JavaBean和从javabean里面的到数据库返回结果,转发回index
解决方案
这个其实很简单啊!你吧 select * from test_db where sql_type=sql_type_value这句sql 打印出来 一看就知道 是什么问题!sql_type 要么乱码要么为空 !! 试试看! 最后 建议!如果是练习这么写可以! 项目里面最后别这么干!参数直接到sql 语句里面是不合理或者危险的!
解决方案二:
用PreparedStatement类的set参数的方式去做,这样也安全。
解决方案三:
楼上正解
解决方案四:
提示的错误信息是SQL语法有错误,问题应该在这个地方:String sql = "select * from test_db where"+sql_type + "='" + sql_typeValue + "'";,关键字where后面少了个空格,导致where和参数sql_type的值连在了一起,出现语法错误,修改成如下语句就可以了:String sql = "select * from test_db where "+sql_type + " = '" + sql_typeValue + "'";。