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

5年以前  |  阅读数:947 次  |  编程语言:PHP 

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

}

}
?>

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例