2012-08-12 93 views
3

我试图从mySQL数据库通过PHP删除一行,它不工作。我试过以下内容:

mysql_query("DELETE FROM table WHERE id='$id'"); 
mysql_query("DELETE FROM 'table' WHERE id='$id'"); 
mysql_query("DELETE FROM `table` WHERE id=`$id`"); 

$ id是唯一的标识符,我已经对它进行了回应以确认它是否会出现。使用“或死”会导致死亡。该行不会消失。

我应该尝试的其他任何语法?

+1

http://en.wikipedia.org/wiki/SQL_injection – 2012-08-12 02:23:33

+3

@Neil McGuigan:无关紧要,直到你知道它是如何处理的 – zerkms 2012-08-12 02:27:42

+1

你是否检查错误信息,当它导致死亡? – Musa 2012-08-12 02:28:29

回答

0

你试过:

mysql_query("DELETE FROM table WHERE id=".$id); 

我问,因为你可能会引用一些(你的ID) - 和你不需要(或希望)这样做。

让我知道这是否有效 - 我不是专家,但这是我第一次看到它。

+0

恐怕没有用。 – WebMeister 2012-08-12 02:44:13

1

是你的id是整数吗?尝试

mysql_query("DELETE FROM `table` WHERE id=$id"); 
+0

是的。我试过这个。 – WebMeister 2012-08-12 02:39:41

+0

@WebMeister你能提供一些错误信息吗? – abcdabcd987 2012-08-12 02:51:15

1

我明白你试图尝试各种可能的组合,但它有助于了解具体是什么标点符号在MySQL语法的实际含义。

`structure` 

重音符仅使用周围像列名称结构等

'value' 

撇号被用于各种值,如id='$id'


mysql_query("DELETE FROM table WHERE id='$id'"); 

这是有效的语法。您还可以在table附近放置重要的口音。

mysql_query("DELETE FROM 'table' WHERE id='$id'"); 

这是无效的语法。 'table'无效,因为它不是一个值。

mysql_query("DELETE FROM `table` WHERE id=`$id`"); 

这是无效的语法。当它应该是撇号时,你会在值的周围加上严肃的口音。


希望这些解释可以帮助您找出问题所在。

+0

一般而言,这很有帮助,但我的问题依然存在。不过感谢钙化。 – WebMeister 2012-08-12 02:45:28

2

错误检查帮助我发现我在第二个mysql_query之前有一个mysql_close();。我的语法是正确的,我只是没有仔细检查剩余的代码。

相关问题