日期:2014-05-18  浏览次数:20815 次

解决给分,简单问题,sql语句错误
jsp中:
String number="xxx";
String SQL_Qry="select * from register where number=\'"+number+"\' and characterNum=\'未定\';";
问题:此sql语句有何错误(register表名,number字段,cnaracterNum字段)
错误提示:aq.executeQuery: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 'from register where characterNum='未定' and number='WWW'' at line 1
小弟刚入行,有提示也找不到错误,请大侠给个提示.

------解决方案--------------------

------解决方案--------------------
别用 * 试试

------解决方案--------------------
sql语句中的字符串是要用单引号'括起来的 
数字就不用具体是什么类型的要看数据库里面字段的类型是什么
不太明白你的为什么要用"\"进行转义呢!
String sql = "select * from register where number='"+number+"' and characterNum='未定'";

------解决方案--------------------
number='WWW'这里错了吧,这个字段应该是INT的吧
------解决方案--------------------
把你拼出来的语句直接放在数据库下看看能不能执行。
从你的SQL表面上看没什么错
------解决方案--------------------
这两个字段什么类型啊?
------解决方案--------------------
String number="xxx"; 
String SQL_Qry="select * from register where number= '" + number + "' and characterNum='未定' ";

这样修改之后就可以了。 
 
------解决方案--------------------
中文换一下试试
------解决方案--------------------
String number="xxx"; 
String SQL_Qry="select * from register where number= '" + number + "' and characterNum='未定' "; 

这样修改之后就可以了。 
或者这样
String number="xxx"; 
String SQL_Qry="select * from register where number= '" + number + "' and characterNum='"+未定+"'";
试试,应该没有问题
------解决方案--------------------

------解决方案--------------------
lz可以考虑用PreparedStatement吗?这样拼接太麻烦了,还容易出错和被注入
------解决方案--------------------
jsp中: 
String number="xxx"; 
String SQL_Qry="select * from register where number=\'"+number+"\' and characterNum=\'未定\';"; 

sql中末尾不能有“;”号,也不需要用\转义
修改为:

String number="xxx"; 
String SQL_Qry="select * from register where number='"+number+"' and characterNum='未定'"; 

试试看
我家里没有装sql,没有办法测试
赫赫