更新数据库中的评论数
问题描述:
我试图更新一个表(条目)中的评论列,当一个新行添加到另一个表(blog_comments)时。此代码位于向DB添加注释的PHP函数中:更新数据库中的评论数
$count = mysql_query("SELECT COUNT(*) FROM blog_comments WHERE entry_title='$entry_title'");
$update = mysql_query("UPDATE Entries SET comments='$count' WHERE title='$entry_title'");
$ entry_title是页面的名称。此代码现在不做任何事情;它不会改变任何东西。我不确定我做错了什么。有任何想法吗?
答
mysql_query()
不直接返回结果。它返回一个资源,你可以用它来得到结果:
$result = mysql_query("SELECT COUNT(*) FROM blog_comments WHERE entry_title='$entry_title'");
$row = mysql_fetch_array($result);
$count = $row[0];
$update = mysql_query("UPDATE Entries SET comments='$count' WHERE title='$entry_title'");
有两件事情值得一提:
使用标题作为一门科通常不建议。您应该使用博客帖子ID或其他内容(imho);和
这代表非规范化,如果您有性能问题,这可能很有用。否则,如果数字以某种方式失去同步,它会产生问题。您可以编写一个查询,在一次往返中取回博客文章和评论数量(作为子查询)。