更新数据库中的评论数

问题描述:

我试图更新一个表(条目)中的评论列,当一个新行添加到另一个表(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'"); 

有两件事情值得一提:

  1. 使用标题作为一门科通常不建议。您应该使用博客帖子ID或其他内容(imho);和

  2. 这代表非规范化,如果您有性能问题,这可能很有用。否则,如果数字以某种方式失去同步,它会产生问题。您可以编写一个查询,在一次往返中取回博客文章和评论数量(作为子查询)。