2014-11-21 59 views
0

正在学校项目的数据库上工作。我用在我成功的数据库的其他部分的PHP代码如下基本路线(修改其他表,当然值):删除错误:'where子句中的未知列'

$sql = "DELETE FROM Rank WHERE RankAbb=" . $_REQUEST["RankAbb"]; 

表名是排名 列名是RankAbb 价值RankAbb是一个VARCHAR(10)

这行代码在CHAR和INT值上工作至今。

我在每个元组旁边都有一个超链接的“删除”按钮,你应该可以点击链接,它引用这个代码,并从表中删除它。

RankAbb PayGrade FullRank
1stLt O-2中尉删除编辑

如果我点击删除链接我得到以下错误的:

Error: DELETE FROM Rank WHERE RankAbb=1stLt Unknown column '1stLt' in 'where clause'

我已经达到了我的能力,以有效地解决并分解问题。谁能帮忙?

回答

3

您需要将值包含在引号中。这解决了你最初的问题。但为了避免将来出现问题,请参阅Jay Blanchard的评论。

$sql = "DELETE FROM Rank WHERE RankAbb='" . $_REQUEST["RankAbb"] . "'"; 
+3

更好的是使用准备好的查询和绑定变量。 [防止SQL注入!](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – 2014-11-21 18:53:30

+0

非常感谢! – 2014-11-21 20:45:54