如果内容发生变化,MySQL将不会更新

时间:2012-03-15 13:01:43

标签: php mysql select

我遇到了PHP和MySQL问题,当我更新标题时我没有遇到任何问题。但是在更改内容时进行更新时,它根本不会更新。

知道出了什么问题。

$query = mysql_query("UPDATE about SET headline='$headline' WHERE content='$content'") 
or die(mysql_error());

$query = mysql_query("SELECT * FROM about ORDER BY id DESC");
while ($row = mysql_fetch_assoc($query))
{
   $id = $row['id'];
   $headline = $row['headline'];
   $content = $row['content'];

   header("location: ../");
}

我正在用PHP和MySQL服务器进行编码。

我更喜欢在更新时仅调用数据库一次的解决方案。

1 个答案:

答案 0 :(得分:3)

使用UPDATE语句时,WHERE子句用于指定要更新的记录。在以下情况中,您修改了标题和内容:

UPDATE about SET headline='$headline' WHERE content='$content'

上述查询尝试更新内容字段等于新内容的标题字段。现有内容与新内容不匹配,不会有任何行。

你必须做类似的事情:

UPDATE about SET headline='$headline', content='$new_content' WHERE content='$old_content'

但是,您通常应该按标识符选择记录,而不是内容字段。

UPDATE about SET headline='$headline', content='$new_content' WHERE id = $id

如果使用类似内容的字段进行更新,则可能会意外更新具有相同内容的所有行,而不仅仅是您尝试更新的行。使用唯一标识符可以仅更新指定的行。

您可以将标识符存储在会话中(在服务器端)。