简单易用的计数器(数据库)

  用法

  <?

  include("counter.php");

  Counter(__FILE__);//为文件增加一个计数

  if($PHP_SELF=="/index.php")

  {

  $count=Counter("INDEX_COUNT");//为首页增加一个计数

  }

  else

  {

  $count=Counter("INDEX_COUNT","",0);//取得首页计数

  }

  echo "你是第$count个访问者";

  ?>

  --------counter.php-----------

  <?

  if(!isset($PHP_INCLUDE_COUNTER_PHP))

  {$PHP_INCLUDE_COUNTER_PHP=__FILE;

  $counter_error_state=0;

  $counter_error_msg="";

  function Counter($file,$query="",$add=1)

  {

  $db_name="database";

  $db_user="username";

  $db_pass="password";

  $db_table="counter";

  if(empty($file))

  {

  $counter_error_state=-100;

  $counter_error_msg="缺少第一个参数或参数为空";

  return -100;

  }

  global $PHP_SELF,$QUERY_STRING,$counter_error_state,$counter_error_msg;

  if(empty($db_user)||!$db_user||$db_user=="")$res=@mysql_connect("localhost");

  else $res=@mysql_connect("localhost",$db_user,$db_pass);

  if(!$res)

  {

  $counter_error_states=-10;

  $counter_error_msg="不能连接数据库";

  return -10;

  }

  if(!@mysql_select_db($db_name))

  {

  $counter_error_states=-11;

  $counter_error_msg="不能选择数据库";

  return -11;

  }

  else

  {

  if(!$db_res=@mysql_query("SELECT * FROM ".$db_table))

  {

  if(!$db_res=@mysql_query("CREATE TABLE ".$db_table." (id INTEGER AUTO_INCREMENT,PRIMARY KEY (id),file VARCHAR(255),query VARCHAR(255),time VARCHAR(255),count INT)"))

  {

  $counter_error_states=-20;

  $counter_error_msg="不能创建数据表";

  return -20;

  }

  @mysql_free_result($db_res);

  }

  $str="SELECT * FROM ".$db_table." WHERE file=\"".$file."\" AND query=\"".$query."\"";

  if(!$db_res=@mysql_query($str))

  {

  $counter_error_states=-30;

  $counter_error_msg="不能查询记录";

  return -30;

  }

  $num=@mysql_num_rows($db_res);

  if($num>1)

  {

  $counter_error_states=-40;

  $counter_error_msg="发生没有预期的错误=数据行数错误";

  return -40;

  }

  $count=0;

  $str="INSERT ";

  $strWhere="";

  if($num==1)

  {

  $row=@mysql_fetch_array($db_res);

  @mysql_free_result($db_res);

  $count=$row["count"];

  $id=$row["id"];

  $str="UPDATE ";

  $strWhere=" WHERE id=$id";

  }

  if($add<1)return $count;

  $count+=$add;

  $str.=$db_table." SET file=\"".$file."\",query=\"".$query."\",time=\"".date("Y;n;d;G;i;s")."\",count=".$count.$strWhere;

  $db_res=@mysql_query($str);

  if(!$db_res)

  {

  $counter_error_states=-50;

  $counter_error_msg="不能添加或更新记录";

  return -50;

  }

  return $count;

  }

  }

  }

  ?>