如何使用php更新MySQL中的一行?

如何使用php更新MySQL中的一行?,php,mysql,Php,Mysql,如何在每次有人访问我的页面时将$pageviews行更新+1。表名为news,要更新的行为$pageviews,默认值为+1。我应该使用更新功能吗?我如何实现它?下面是我的代码。你能用这些数据演示一下吗 $data = mysql_query("SELECT * FROM news") or die(mysql_error()); while($info = mysql_fetch_array( $data )) { $id = $info['id']; $pagevie

如何在每次有人访问我的页面时将$pageviews行更新+1。表名为news,要更新的行为$pageviews,默认值为+1。我应该使用更新功能吗?我如何实现它?下面是我的代码。你能用这些数据演示一下吗

$data = mysql_query("SELECT * FROM news") or die(mysql_error()); 
while($info = mysql_fetch_array( $data )) 
{  
    $id = $info['id'];
    $pageviews = $info['pageviews'];
}
使用此查询

mysql_query("Update news SET pageviews = pageviews + 1 ");

将当前页面id存储在$current\u page\u id中

 mysql_query("Update news SET pageviews = pageviews + 1  where id = '$current_page_id' ");

您只需在每次页面呈现时增加
pageviews
值。您所需要的一切:

1) 获取当前值

2) 运行
UPDATE
查询更新当前值+1

为此,您可以编写一个如下所示的函数:

function inc_page_views($id) {

  $res = mysql_query(sprintf("SELECT * FROM `news` WHERE `id` ='%s'", mysql_real_escape_string($id))); 

  $data = mysql_fetch_array($res);

  // Target view count
  $target = $data['pageviews'];

  $query = sprintf("UPDATE `news` SET `pageviews` = '%s' WHERE `id` ='%s'", $target + 1, $id);

  return mysql_unbuffered_query($query);
}

然后,在呈现页面时,您只需调用
inc_page_views(…这里是page id…)
,它就会完成其余的工作您是否尝试过类似
UPDATE news SET pageviews=pageviews+1
?Oligatory“mysql已弃用,请使用mysqli_*函数”的注释。php.net/manual/en/book.mysqli.php只需在
mysql\u query()函数中传递我给出的查询即可。。注意:您使用的是过时的数据库API。我现在将我的函数更改为mysqli_*函数。谢谢。@ShankarDamodaran-这应该是一个答案:)请您澄清我如何将当前页面id存储在$current_page_id中?您的新闻表将具有唯一的id,您将在url中发送该id。之后,url将是这样的。所以在这个例子中,id是33。因此,在new.php中,必须像这样编写代码$当前页面id=$获取['id'];然后您必须使用上面的第二个查询