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


Posted in PHP onOctober 09, 2006

用法
<?
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 相关文章推荐
php session 预定义数组
Mar 16 PHP
php 什么是PEAR?
Mar 19 PHP
php 获取select下拉列表框的值
May 08 PHP
深入HTTP响应状态码速查表的详解
Jun 07 PHP
php防止sql注入代码实例
Dec 18 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
php+ajax实时输入自动搜索匹配的方法
Dec 26 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
php图像验证码生成代码
Jun 08 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 PHP
用Php实现链结人气统计
Oct 09 #PHP
也谈 PHP 和 MYSQL
Oct 09 #PHP
在WIN98下以apache模块方式安装php
Oct 09 #PHP
Php+SqlServer实现分页显示
Oct 09 #PHP
写一个用户在线显示的程序
Oct 09 #PHP
PHP4引用文件语句的对比
Oct 09 #PHP
一个php作的文本留言本的例子(六)
Oct 09 #PHP
You might like
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
PHP钩子实现方法解析
2019/05/21 PHP
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
基于jQuery的树控件实现代码(asp.net+json)
2010/07/11 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
2014/09/25 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
后勤采购员岗位职责
2013/12/19 职场文书
酒店中秋节促销方案
2014/01/30 职场文书
领导干部考察材料
2014/02/08 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书