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

用法
<?
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;
        }
}

}
?>