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


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 相关文章推荐
建立文件交换功能的脚本(二)
Oct 09 PHP
基于mysql的论坛(5)
Oct 09 PHP
php基础知识:类与对象(1)
Dec 13 PHP
解决php中Cannot send session cache limiter 的问题的方法
Apr 27 PHP
phpexcel导入excel数据使用方法实例
Dec 24 PHP
PHP多进程编程实例
Oct 15 PHP
用PHP代码给图片加水印
Jul 01 PHP
PHP+ajax分页实例简析
Dec 07 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
Jun 29 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
PDO::_construct讲解
Jan 27 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 19 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之第二天
2006/10/09 PHP
php常用文件操作函数汇总
2014/11/22 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
Python生成验证码实例
2014/08/21 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
python版大富翁源代码分享
2018/11/19 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
大学学生会竞选演讲稿
2014/04/25 职场文书
欢迎标语大全
2014/06/21 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
三潭印月的导游词
2015/02/12 职场文书
索赔员岗位职责
2015/02/15 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL