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

用法
<?
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;
        }
}

}
?> 

时间: 2024-12-09 01:16:03

简单易用的计数器(数据库)的相关文章

5种易犯的PHP数据库错误

 5种易犯的PHP数据库错误---包括数据库模式设计.数据库访问和使用数据库的业务逻辑代码---以及它们的解决方案. 如果只有一种 方式使用数据库是正确的--  您可以用很多的方式创建数据库设计.数据库访问和基于数据库的 PHP 业务逻辑代码,但最终一般以错误告终.本文说明了数据库设计和访问数据库的 PHP 代码中出现的五个常见问题,以及在遇到这些问题时如何修复它们. 问题 1:直接使用 MySQL 一个常见问题是较老的 PHP 代码直接使用 mysql_ 函数来访问数据库.清单 1 展示了如何

网站导航设计经验分享:清晰的导航能够让页面简单易用

文章描述:网站导航设计经验分享:清晰的导航能够让页面简单易用. 导航是互联网产品中应用最广泛的基础元素之一,引导用户了解到网站的内容结构进而找到所求.作为基础控件,导航看起来简单,但却是产品设计中最复杂繁琐的一部分.因为我们想要让网站结构更清晰.想要向用户传达所有的信息,所以就赋予了导航越来越多的内容,使他们庞大异常,十分纠结.简化了,用户无法了解到页面结构以及自己的处境,产生困惑:复杂了,导航臃肿不堪,层峦叠嶂,既不美观也不好用. 那么,在清晰的信息架构下能不能让导航尽可能的更轻便.更灵动,是

用最简单的步骤备份SQL数据库的文件到本地

用最简单的步骤备份sql数据库的文件到本地: response.Charset = "utf-8" Session.Codepage = 65001 Response.Buffer=true Response.Clear '根据你的情况修改用户名和密码 constr="Provider=SQLOLEDB.1;Persist Security Info=True;User ID=endiva;Password=endiva;Data Source=211.160.78.6&qu

简单实现Standby Sql Server数据库

一.为什么要备份数据库? 在现实IT世界里,我们使用的服务器硬件可能因为使用时间过长,而发生故障: Windows系列服务器有可能蓝屏或者感染病毒:SQL Server数据库也可能因为误操作或Bug而停止运行. 如何有效备份SQL Server数据库,避免故障真正发生时长时间的宕机,是每个系统管理员必须面对的任务. 二.简单实现Standby Sql Server 数据库的原理 我这里介绍一种不需要多大硬件投入(只需一台专用或兼用备份服务器)的Standby SQL Server的简单配置和使用

ASP.NET实现的简单易用文件上传类

  这篇文章主要介绍了ASP.NET实现的简单易用文件上传类,本文给出实现代码和使用方法示例,需要的朋友可以参考下 调用方法: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 UploadFile uf = new UploadFile();   /*可选参数*/ uf.SetIsUseOldFileName(true);//是否使用原始文件名作为新文件的文件名(默认:true),true原始文件名,false系统生成新文件名

ubuntu 14.04-ubuntu 输入gedit,结果如图,我是小白,能不能提供一个简单易操作的方法

问题描述 ubuntu 输入gedit,结果如图,我是小白,能不能提供一个简单易操作的方法 10C 解决方案 建议还是使用vi或vim吧. 解决方案二: 或许在tty1终端下不支持,试试terminal,应该就可以打开了 解决方案三: 你这是在tty终端环境下,不是在x视窗下,gedit是一个gtk的图形界面程序,在这个环境下当然不能运行了 解决方案四: 装个vim吧,那个好用 解决方案五: gedit是图形界面的编辑器,要去图形界面下打开,纯字符界面还是用vim吧. 解决方案六: 字符界面,用

真实可靠致富小项目,门槛低简单易上手,人人都能干

网上兼职做什么好,致富小项目还好赚钱 真实可靠致富小项目有什么?真实可靠致富小项目门槛高吗?相信很多创业者,对于最佳项目的期望值很高,可是往往事与愿违.真实可靠致富小项目,门槛低简单易上手,人人都能干.但是根据各地区的经济水平和消费水平,每个人所适合的项目不一样. 真实可靠致富小项目--做淘宝客,帮别人卖商品赚提成. 淘宝客成立时间有五年多了,现在成为网络最热门兼职项目,它的发展速度大家看得见,在未来的十年淘宝客还是个非常有前途的项目,不但适合个人还适合团队,企业去操作,小有小做,大有大做,第一

梅子淘源:简单易用,对我们才最重要

梅子淘源平台于2014年由阿里巴巴等互联网的老兵成立的创新型互联网公司,专注于新农业,崇尚健康.自然.快乐的生活.口号是"吃货改变土地",于2015年1月上线官方平台梅子淘源. 简单易用 我们梅子淘源的团队是由著名互联网公司.电子商务公司.连锁品牌公司前高管组建的:我们应用互联网思维和众筹模式,在用户和农人之间建立信任机制,缩短供应渠道,让消费者决定生产什么产品:平台服务于对健康和品质有要求的消费者,同时也服务于从事绿色种植的农人和生产者.  在我们这个创业团队中,有两个人之前都是阿里

简单易用的倒计时js代码_javascript技巧

<!doctype html> <html> <head> <meta charset="utf-8"> <title>简单易用的倒计时js代码</title> <style> *{ margin:0; padding:0; list-style:none;} body{ font-size:18px; text-align:center;} .time{ height:30px; padding:20