【java】sql中的update语句语法报错

Stringsql="UPDATE`menu`.`chifood`SET"+"id='"+menu.getName()+"',"+"price="+menu.getPri... String sql = "UPDATE `menu`.`chifood` SET " +
"id = '" + menu.getName() + "'," +
"price = " + menu.getPrice() + "'," +
"amount = '" + menu.getAmount() + "'," +
"WHERE id = '" + menu.getId().trim() +"'";
(ps:menu是数据库名,chifood是表名)
运行时出错: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 '',amount = '6',WHERE id = '2'' at line 1
改成UPDATE chifood SET也不行
展开
 我来答
仙境ois
推荐于2016-04-20 · 超过31用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:62.2万
展开全部
数据库名是不需要添加的。
你的UPDATE语句编写错误,UPDATE语句只需要提供表名不需要用数据库名
正确的UPDATE语法: UPDATE 表名 SET 列名1=value,列名2=value WHERE 条件
ps: id 列作为条件,不可以放在SET 语句块后面作为更新内容
追问
现在改成这样还是报错:
String sql = "UPDATE chifood SET " +
"name = '" + menu.getName() + "'," +
"price = '" + menu.getPrice() + "'," +
"amount = '" + menu.getAmount() + "'," +
"WHERE id = '" + menu.getId().trim() +"'";
追答
额,拼加的方式比较复杂,同意出错,使用StringBuffer对象吧
String sql=new StringBuffer()
.append("UPDATE chifood SET name ='")

.append(menu.getName())

.append("' price='")

.append(menu.getPrice())

.append("' amount='")

.append(menu.getAmount())

.append("' WHERE id=")

.append(menu.getId().trim())

.toString();

--- 表中 id 列是自动标识列吧?如果是整型的话就不用加单引号,
若是字符串,则还需在最后一个变量外面加单引号
theone9096
2013-01-03 · 超过15用户采纳过TA的回答
知道答主
回答量:128
采纳率:50%
帮助的人:37.6万
展开全部
第三行"price = ’" + menu.getPrice() + "'," +应该这么写吧,貌似少了一个‘
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
water_lang
2013-01-03 · TA获得超过233个赞
知道答主
回答量:122
采纳率:100%
帮助的人:64.2万
展开全部
"id = '" + menu.getName() + "',"你这里的是getName是String么?我觉得你最好用DEBUG模式把你的SQL打出来找, 一下就找到问题了
追问
我那段写错了,是name=menu.getName(),修改后还是报错是为什么。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式