查询删除评论

时间:2009-11-02 17:49:19

标签: php html database xhtml

所以,我几乎有我的删除功能正常工作,我正确加载页面没有任何致命错误,但它仍然没有做到这一点。

这是我的while循环的一部分:

echo "<a href='http://www.@#@$#%##%#.org/Profile.php?id=".$prof->id."'>";
echo " delete";
echo "</a>";

这是我的查询部分显然是错误的:

$query = "UPDATE `ProfileComments` SET `status` = 'dead' WHERE `id` = '".$prof->id."' LIMIT 1";

那么,我该怎么做才能删除页面上的评论?并在数据库中标记状态为死?

4 个答案:

答案 0 :(得分:2)

从你的sql看起来你正在做soft delete,这很好。您的select语句需要排除状态为“dead”

的注释
SELECT columns FROM ProfileComments WHERE status != 'dead' AND id = {$prof->id}

当然,如果没有看到在生成链接时如何填充prof->id,那就是猜测。

你的帖子还有其他一些问题:

  1. 正如其他人所建议的那样,你应该使用参数化查询,否则你可以自己接受sql注入
  2. 您不应该通过get请求进行删除(使用裸锚)。使用AJAX或表单进行删除。通过get修改服务器数据是一种不好的做法。

答案 1 :(得分:0)

仅仅因为你没有看到致命的错误,你的代码就不必像你想要的那样。

在循环内部检查$prof->id的内容,通过var_dump然后die,这样您就可以控制该属性在您想要的时刻所拥有的内容打印出来。

同样适用于您的查询var_dump,以查看其中包含的内容。

答案 2 :(得分:0)

没有看到更多的代码(而且不知道您的经验水平),我不确定您实际需要帮助的地方,所以请原谅我,如果我的问题/建议对您来说显而易见且过于基本:

如何在Profile.php中填充$prof->id?你是否将它从请求中删除(如:$id = $_REQUEST["id"])?

正如迈克尔所说,请使用parameterized queries。 (如果你不关心孩子,至少要想起小猫!)

答案 3 :(得分:0)

您的SQL语句看起来很好,而且html代码也很好。找到问题

  1. 您需要确保您的SQL获得正确的参数,在这种情况下为id。只是回应它,如果id丢失或错误,你知道$ prof-&gt; id需要修复。

  2. 还检查你的php转储的链接,它是否包含正确的ID?

  3. 确保在执行SQL之前没有任何错误,基本上确保调用SQL查询语句。并确保您的数据库连接是实时的。

  4. 当mysql语句错误时,它不会抛出致命错误,你需要通过mysql_error()自己打印错误。