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


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 分页类 扩展代码
Jun 11 PHP
PHP初学者常见问题集合 修正版(21问答)
Mar 23 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
Sep 10 PHP
WordPress中使主题支持小工具以及添加插件启用函数
Dec 22 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
php简单截取字符串代码示例
Oct 19 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 PHP
PHP实现简易图形计算器
Aug 28 PHP
PHP7 标准库修改
Mar 09 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
ThinkPHP中session函数详解
2016/09/14 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
超清晰的document对象详解
2007/02/27 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
使用jQuery监听DOM元素大小变化
2016/02/24 Javascript
基于WebUploader的文件上传js插件
2016/08/19 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
python实现多层感知器
2019/01/18 Python
Python3数字求和的实例
2019/02/19 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
全球最大的服务市场:Fiverr
2017/01/03 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
高三英语教学反思
2014/01/13 职场文书
公司离职证明样本
2014/09/13 职场文书
个人工作能力自我评价
2015/03/05 职场文书
催款函范文
2015/06/24 职场文书
护理自荐信
2019/05/14 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android