一个关于jsp+MySQL的编程问题,新手,救急...
下面两个语句为什么结果不是一样的?
String sql2="update book set mount=10000 where bookname='"+name+"'";
String sql2="update book set mount=num where bookname='"+name+"'";
num是int类型的数值,为什么传不进去。要怎么样处理?[size=16px][/size]
我需要实现用变量来传进数值到数据库中,有不明白的地方尽管问。
------解决方案--------------------String sql2="update book set mount="+num+" where bookname='"+name+"'";
改成这样试一下...
------解决方案--------------------如果你数据库的mount字段是int型的,
采用1楼的做法
------解决方案--------------------大哥你这样怎么床的进去?String sql2="update book set mount="+num+" where bookname='"+name+"'";这样是对的"update book set mount=num where bookname='"这样双引号里面 都是字符串
------解决方案--------------------楼上的分析很正确,你改了应该可以结果就一致了!
------解决方案--------------------1楼正解 String sql2="update book set mount=num where bookname='"+name+"'";
如果这么写的, num会被当成一个整个String里的一部分,而不会认为他是变量 "+num+" 改成这样才能从num中取出值来
------解决方案--------------------建议用占位符的方式,你这样会产生SQL注入漏洞
String sql = "update book set mount=? where bookname=?" ;
PreparedStatement ps = conn.prepareStatement(sql);
ps.setObject(1,num);
ps.setObject(2,name);