更新数据库中的注释数

时间:2010-03-08 22:26:38

标签: php mysql database

当一个新行添加到另一个表(blog_comments)时,我正在尝试更新一个表(条目)中的comments列。此代码位于PHP函数内部,该函数向DB添加注释:

    $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是页面的名称。此代码现在没有任何作用;它没有改变任何东西。我不确定我做错了什么。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

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. 这表示非规范化,如果您遇到性能问题,这可能很有用。否则,如果数字以某种方式不同步,它可能会产生问题。您可以编写一个查询,在一次往返中拉回博客帖子和评论数量(作为子查询)。