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


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作的文本留言本的例子(五)
Oct 09 PHP
PHP 函数学习简单小结
Jul 08 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 PHP
php+mysql实现数据库随机重排实例
Oct 17 PHP
php之curl设置超时实例
Nov 03 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
php使用自定义函数实现汉字分割替换功能示例
Jan 30 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 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的ajax框架xajax入门与试用介绍
2010/12/19 PHP
一些需要禁用的PHP危险函数(disable_functions)
2012/02/23 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
PHP中的表达式简述
2016/05/29 PHP
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
详解js的六大数据类型
2016/12/27 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
基于JavaScript实现验证码功能
2017/04/01 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
使用python3实现操作串口详解
2019/01/01 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
室内设计专业个人的自我评价
2013/10/19 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
小学体育教学随笔
2015/08/14 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
mysq启动失败问题及场景分析
2021/07/15 MySQL