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


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 相关文章推荐
js下函数般调用正则的方法附代码
Jun 22 PHP
PHP MYSQL乱码问题,使用SET NAMES utf8校正
Nov 30 PHP
PHP反转字符串函数strrev()函数的用法
Feb 04 PHP
TMDPHP 模板引擎使用教程
Mar 13 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
php实现按照权重随机排序数据的方法
Jan 09 PHP
Yii2 assets清除缓存的方法
May 16 PHP
php array_slice 取出数组中的一段序列实例
Nov 04 PHP
浅谈PHP进程管理
Mar 08 PHP
thinkphp5框架扩展redis类方法示例
May 06 PHP
Laravel关系模型指定条件查询方法
Oct 10 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
Oct 11 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
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
2014/04/01 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
php技巧小结【推荐】
2017/01/19 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
node.js中的require使用详解
2014/12/15 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
python的即时标记项目练习笔记
2014/09/18 Python
Python中使用不同编码读写txt文件详解
2015/05/28 Python
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
Python selenium 三种等待方式解读
2016/09/15 Python
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
python中安装django模块的方法
2020/03/12 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
广告设计专业自荐信范文
2013/11/14 职场文书
小学清明节活动方案
2014/03/08 职场文书
2014年社区学雷锋活动总结
2014/03/09 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
升学宴来宾致辞
2015/07/27 职场文书
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA