我遇到了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服务器进行编码。
我更喜欢在更新时仅调用数据库一次的解决方案。
答案 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
如果使用类似内容的字段进行更新,则可能会意外更新具有相同内容的所有行,而不仅仅是您尝试更新的行。使用唯一标识符可以仅更新指定的行。
您可以将标识符存储在会话中(在服务器端)。