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


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 cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
初识PHP
Sep 28 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
php通过ksort()函数给关联数组按照键排序的方法
Mar 18 PHP
深入理解PHP中的Streams工具
Jul 03 PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
Yii框架模拟组件调用注入示例
Nov 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
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
[IE&amp;FireFox兼容]JS对select操作
2007/01/07 Javascript
Javascript Select操作大集合
2009/05/26 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
jquery插件validate验证的小例子
2013/05/08 Javascript
js复制到剪切板的实例方法
2013/06/28 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
Python中正则表达式的用法实例汇总
2014/08/18 Python
python中range()与xrange()用法分析
2016/09/21 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
基于python实现从尾到头打印链表
2019/11/02 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
python飞机大战游戏实例讲解
2020/12/04 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
印度在线杂货店:bigbasket
2018/08/23 全球购物
软件配置管理有什么好处
2015/04/15 面试题
介绍一下Java中标识符的命名规则
2014/02/03 面试题
英语故事演讲稿
2014/04/29 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
单位病假条范文
2015/08/17 职场文书
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL