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


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 函数使用方法与函数定义方法
May 09 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
Jun 18 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
Jun 23 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
Smarty模板常见的简单应用分析
Nov 15 PHP
PHP+jQuery实现双击修改table表格功能示例
Feb 21 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
Aug 14 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
深入浅析安装PhpStorm并激活的步骤详解
Sep 17 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 表单提交给自己
2008/07/24 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
2016/01/19 Javascript
浅谈JS继承_借用构造函数 &amp; 组合式继承
2016/08/16 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
Python中functools模块函数解析
2017/03/12 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
python基于http下载视频或音频
2018/06/20 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
详解Python3 pickle模块用法
2019/09/16 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
Django权限控制的使用
2021/01/07 Python
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
师范毕业生自荐信
2013/10/17 职场文书
魅力教师事迹材料
2014/01/10 职场文书
简历里的自我评价
2014/01/31 职场文书
中学教师教育感言
2014/02/21 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
java实现对Hadoop的操作
2021/07/01 Java/Android