更新查询问题

时间:2010-12-02 06:53:38

标签: php

大家好我在mysql数据库中有一个“ammount”字段,它有“varchar(50)”类型。当我将数据插入该字段时,例如ammount = 4 kg即可,但是当我更新该字段时,它会给我以下错误。

Error in query: UPDATE ingredients SET ingredient_name='test recipe',ammount=4 gm where ingredient_id='59'. 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 'gm where ingredient_id='59'' at line 1

我的查询是

 $query="UPDATE ingredients SET ingredient_name='$ingredient',ammount=$ammount where ingredient_id='$ingredient_id'";

2 个答案:

答案 0 :(得分:2)

1)正确的拼写是“金额”。

2)您不应该对SQL查询使用这样的变量插值。这是非常不安全的。使用prepared statement

3)在定义$amount时,您没有在$query周围加上引号,因此它们不会在最终的替换查询字符串中结束。仔细查看错误消息:它向您显示SQL尝试处理的查询。注意它是如何说ammount=4 gm的?它无法处理,因为没有引号。

如果你use prepared statements就像你应该的那样,引用会照顾好自己。

答案 1 :(得分:1)

您的查询有:

...,ammount=4 gm where...

这是不正确的。您需要4 gm周围的引号。

更改

,ammount=$ammount where

,ammount='$ammount' where