2009-11-02 108 views
-1

所以,我几乎有我的删除功能工作,我有正确的页面加载没有任何致命的错误,但它仍然没有伎俩。查询删除评论

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

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

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

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

所以,我怎么得到这个删除评论在页面上?并将数据库中的状态标记为死亡?

+1

我很乐意提供帮助,但您需要告诉我们代码正在做什么,或者显示更多代码。 – 2009-11-02 17:52:04

+0

你可以发布你的PHP如何生成链接? – 2009-11-02 18:01:26

+0

基本上现在的代码,重新加载页面后,我点击删除(这是很好,这就是我想要的),但它不是删除评论和标记为我的分贝做的,我该怎么做? – 2009-11-02 19:29:25

回答

0

仅仅因为你没有看到致命错误,你的代码并不需要像你想要的那样行事。

检查$prof->id的内容,在循环内部,通过var_dump然后die,这将让您控制该属性在您想要打印的时刻保留的内容。

同样的事情适用于您的查询,var_dump看看它包含什么。

0

没有看到更多的代码的(不知道你的经验等级),我不知道,你确实需要帮助,所以原谅我,如果我的问题/建议是显而易见的,也基本为您提供:

$prof->id如何在Profile.php中填充?你是否将其从请求中拉出来(如下所示:$id = $_REQUEST["id"])?

正如Michael所说,请使用parameterized queries。 (如果你不在乎孩子,至少想到小猫!)

2

从你的sql看起来你正在做一个soft delete,这很好。 SELECT语句需要排除是“死”

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

当然,这是一个猜测的状态的意见没有看到你如何填充prof->id当你生成的链接。

有一对夫妇的其他问题与你的讯息,但:

  1. 正如其他人的建议,你应该使用参数化查询,否则你会把自己暴露给SQL注入
  2. 你不应该做删除通过获取请求(使用裸机)。要么使用AJAX进行删除,要么通过表单进行删除。通过get修改服务器数据是一种不好的做法。
0

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

  1. 你需要确保你的SQL是获得正确的参数,在这种情况下,ID。只是将其回显出来,如果ID缺失或错误,您知道$ prof-> id需要修复。

  2. 还检查您的PHP倾销的链接,它是否包含正确的ID?

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

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