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


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 相关文章推荐
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
php实现快速排序法函数代码
Aug 27 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
Zend Framework框架Smarty扩展实现方法
Mar 22 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
Feb 04 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
Feb 04 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
PHP回调函数概念与用法实例分析
Nov 03 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php实现websocket实时消息推送
Mar 30 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 PHP
如何用PHP实现多线程编程
May 26 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直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
javascript 伪数组实现方法
2010/10/11 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
vue登录注册实例详解
2019/09/14 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
python实现上传下载文件功能
2020/11/19 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
宿舍打麻将检讨书
2014/01/24 职场文书
社区戒毒工作方案
2014/06/04 职场文书
行政介绍信范文
2015/05/04 职场文书
学校远程教育工作总结
2015/08/11 职场文书
合作意向书范本
2019/04/17 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
JavaScript函数柯里化
2021/11/07 Javascript
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers