所以,我几乎有我的删除功能正常工作,我正确加载页面没有任何致命错误,但它仍然没有做到这一点。
这是我的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";
那么,我该怎么做才能删除页面上的评论?并在数据库中标记状态为死?
答案 0 :(得分:2)
从你的sql看起来你正在做soft delete,这很好。您的select语句需要排除状态为“dead”
的注释SELECT columns FROM ProfileComments WHERE status != 'dead' AND id = {$prof->id}
当然,如果没有看到在生成链接时如何填充prof->id
,那就是猜测。
你的帖子还有其他一些问题:
答案 1 :(得分:0)
仅仅因为你没有看到致命的错误,你的代码就不必像你想要的那样。
在循环内部检查$prof->id
的内容,通过var_dump
然后die
,这样您就可以控制该属性在您想要的时刻所拥有的内容打印出来。
同样适用于您的查询var_dump
,以查看其中包含的内容。
答案 2 :(得分:0)
没有看到更多的代码(而且不知道您的经验水平),我不确定您实际需要帮助的地方,所以请原谅我,如果我的问题/建议对您来说显而易见且过于基本:
如何在Profile.php中填充$prof->id
?你是否将它从请求中删除(如:$id = $_REQUEST["id"]
)?
正如迈克尔所说,请使用parameterized queries。 (如果你不关心孩子,至少要想起小猫!)
答案 3 :(得分:0)
您的SQL语句看起来很好,而且html代码也很好。找到问题
您需要确保您的SQL获得正确的参数,在这种情况下为id。只是回应它,如果id丢失或错误,你知道$ prof-&gt; id需要修复。
还检查你的php转储的链接,它是否包含正确的ID?
确保在执行SQL之前没有任何错误,基本上确保调用SQL查询语句。并确保您的数据库连接是实时的。
当mysql语句错误时,它不会抛出致命错误,你需要通过mysql_error()自己打印错误。