封装PHP常用的操作类

  1. common.php
  2. <?php
  3.  /**
  4.     * ******************************************
  5.     * 系统公共函数和变量类
  6.     * 
  7.     * @author mark.wang
  8.     * @date 2008-12-06 11:10:48
  9.     * @copyright www.iwoindex.com
  10.     * @version 1.0
  11.     * ******************************************
  12.     */
  13.  //header信息首先发送到客户端
  14.  @header("content-Type:text/html;charset=GBK");
  15.  //microtime返回格式为"msec sec"的字符串,其中sec为当前unix的时间戳,msec是微妙部分
  16.  $mtime=explode(' ',microtime());
  17.  //返回自格林威治时间1970年1月1日 00:00:00到当前时间的秒数,精确到微妙
  18.  $starttime=$mtime[0]+$mtime[1];
  19.  //返回自身的文件名,打印结果为:'/ilexa/include/common.php'
  20.  $php_self=$_SERVER['PHP_SELF']?$_SERVER['PHP_SELF']:$_SERVER['SCRIPT_NAME'];
  21.  //当前时间,1228533665  单位为秒
  22.  $timestamp=time();
  23.  //定义根目录 D:/htdocs/ilexa/
  24.  define('ROOT',substr(dirname(__FILE__),0,-7));
  25.  //包含配置文件,里面包含连接数据库的参数
  26.  require_once (ROOT.'include/config.php');
  27.  //包含数据库操作类,里面封装了一些操作数据库的函数
  28.  require_once (ROOT.'include/mysql.php');
  29.  $DB=new DB_MySQL();
  30.  $DB->connect($servername,$dbusername,$dbpassword,$dbname,$usepconnect);
  31.  unset($servername,$dbusername,$dbpassword,$dbname,$usepconnect);
  32.  $onoff=function_exists('ini_get')?ini_get('register_globals'):get_cfg_var('register_globals');
  33.  if($onoff!=1){
  34.     @extract($_POST,EXTR_SKIP);
  35.     @extract($_GET,EXTR_SKIP);
  36.     @extract($_COOKIE,EXTR_SKIP);
  37.  }
  38.  //取出转义字符,此函数使用频繁
  39.  function stripslashes_array(&$array){
  40.     if(is_array($array)){
  41.         foreach ($array as $k=>$v){
  42.             $array[$k]=stripslashes_array($v);
  43.         }
  44.     }else if(is_string($array)){
  45.         $array=stripslashes($array);
  46.     }
  47.     return $array;
  48.  }
  49.  @set_magic_quotes_runtime(0);//关闭魔法设置,参数为0时magic_quotes_runtime为off
  50.  //判断get_magic_quotes_gpc的状态,为on的情况下用stripslashes_array函数处理
  51.  if(get_magic_quotes_gpc()){
  52.     $_GET=stripslashes_array($_GET);
  53.     $_POST=stripslashes_array($_POSt);
  54.     $_COOKIE=stripslashes_array($_COOKIE);
  55.  }
  56.  //防止PHP5.1.X使用时间函数出错
  57.  if(function_exists('date_default_timezone_set')){
  58.     @date_default_timezone_set('UTC');
  59.  }
  60.  //获取IP地址getenv函数用于获取环境变量
  61.  if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
  62.     $onlineip = getenv('HTTP_CLIENT_IP');
  63. } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
  64.     $onlineip = getenv('HTTP_X_FORWARDED_FOR');
  65. } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
  66.     $onlineip = getenv('REMOTE_ADDR');
  67. } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
  68.     $onlineip = $_SERVER['REMOTE_ADDR'];
  69. }
  70. $onlineip = addslashes($onlineip);
  71. @preg_match("/[/d/.]{7,15}/", $onlineip, $onlineipmatches);
  72. $onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';
  73. unset($onlineipmatches);//释放变量,节省系统资源
  74. //base64位编码函数,即base64加密和解密,默认参数为加密
  75. function authcode($string,$operation='ENCODE'){
  76.     if($operation=='ENCODE'){
  77.         $string=base64_encode($string);
  78.     }else{
  79.         $string=base64_decode($string);
  80.     }
  81.     return $string;
  82. }
  83. function getnews(){
  84.     
  85.     
  86. }
  87. ?>
  88. config.php
  89. <?php
  90. /**
  91.     * ******************************************
  92.     * 数据库连接配置类
  93.     * 
  94.     * @author mark.wang
  95.     * @date 2008-12-06 11:10:48
  96.     * @copyright www.iwoindex.com
  97.     * @version 1.0
  98.     * ******************************************
  99.     */
  100. $servername = '192.168.1.102';
  101. $dbusername = 'root';
  102. $dbpassword = '123456';
  103. $usepconnect = '1';
  104. $dbname = 'index';
  105. $db_prefix = 'iwo_';
  106. $dbcharset = 'gbk';
  107. $charset = 'utf-8';
  108. $iwo_VERSION = '1.0';
  109. $iwo_RELEASE = '20081101';
  110. ?>
  111. mysql.php
  112. <?php
       /**
        * ******************************************
        * 数据库操作类(mysql)版本
        *
        * @author mark.wang
        * @date 2008-12-06 11:40:45
        * @ QQ:103531948  Email:wangjiangfeng77qq@163.com
        * @copyright www.iwoindex.com
        * @version 1.0
        * ******************************************
        */
     //防止直接访问改程序,此文件只能在被定义了ROOT的地方才能使用,增加了系统的安全性
     if(!defined('ROOT')){
      exit('Access Denied');
     }
     
     class DB_MySQL{
      var $querycount=0;
      //返回mysql错误
      function geterrdesc(){
       return mysql_error();
      }
      
      //返回mysql错误行号
      function geterrno(){
       return mysql_errno();
      }
      
      //返回插入新行的id
      function insert_id(){
       $id=mysql_insert_id();
       return $id;
      }
      
      //
      function connect($servername,$dbusername,$dbpassword,$dbname,$usepconnect=0){
       /*---------------获得数据库连接-----------------------*/
       if($usepconnect){
        if(!@mysql_pconnect($servername,$dbusername,$dbpassword)){
         $this->halt("数据库连接失败!");
        }
       }else{
          if(!@mysql_connect($servername,$dbusername,$dbpassword)){
         $this->halt("数据库连接失败!");
        }
       }
       
       /*---------------对数据库一些参数进行设置----------------------*/
       
       //判断mysql版本定义全局变量
       if($this->version()>'4.1'){
        global $charset,$dbcharset;
        if(!dbcharset&&in_array(strtolower($charset),array('gbk','big5','utf-8'))){
         $dbcharset=str_replace('-','',$charset);
        }
        if($dbcharset){
         mysql_query("SET character_set_connection=$dbcharset,character_set_results=$dbcharset,character_set_client=binary;");
        }
       }
       
       //如果当前MYSQL版本在5.0以上
       if($this->version()>'5.0.1'){
        mysql_query("SET sql_mode=''");
       }
       
       //如果数据库名不为空,则调用内部方法select_db,使该数据库为当前库
       if($dbname){
        $this->select_db($dbname);
       }
      }
      
      //从结果集中取得数据,生成数组返回
      function fetch_array($query,$result_type=MYSQL_ASSOC){
       return mysql_fetch_array($query,$result_type);
      }
      
      //执行一个SQL语句
      function query($sql,$type=''){
       $func=$type='UNBUFFERED'&&@function_exists('mysql_unbuffered_query')?'mysql_unbuffered_query':'mysql_query';
       if(!($query=$func($sql))&&type!='SILENT'){
        $this->halt('MySQL QUERY error',$sql);
       }
       $this->querycount++;
       return $query;
      }
      
      //此方法和上面方法的不同点是,这个方法设置了清楚缓存
      function unbuffered_query($sql){
       $query=$this->query($sql,'UNBUFFERED');
       return $query;
      }
      
      //使用库为当前库
      function select_db($dbname){
       return mysql_select_db($dbname);
      }
      
      //从结果集中取得一行数据返回
      function fetch_row($query){
       $query=mysql_fetch_row($query);
       return $query;
      }
      
      //返回结果集中的第一租数据
      function fetch_one_array($query){
       //内部调用query方法
       $result=$this->query($query);
       //内部调用fetch_array方法
       $record=$this->fetch_array($result);
       return $record;
      }
      
      //返回结果集中行的数目
      function num_rows($query){
       $query=mysql_num_rows($query);
       return $query;
      }
      
      //返回执行update,delete,insert语句时,影响的行数
      function affect_nums($query){
       return mysql_affected_rows($query);
      }
      
      //返回结果集中字段的数目
      function num_fields($query){
            return mysql_num_fields($query);
      }
      
      //函数返回用于MySQL结果集中一个单元的内容,$row是偏移量
      function result($query,$row){
       $query=@mysql_result($query,$row);
       return $query;
      }
      
      //释放所有于结果集标识符中的结果集
      function free_result($query){
       $query=mysql_free_result($query);
       return $query;
      }
      
      //返回MySQL版本号
      function version(){
       return mysql_get_server_info();
      }
      
      //函数用于关闭指定的连接标识所关联的到MySQL服务器的连接,如果没有指定,则关闭上一个打开的连接
      function close(){
       return mysql_close();
      }
      
      //数据库操作输出信息
        function halt($msg, $sql=''){
      global $php_self,$timestamp,$onlineip;
  113.   if ($sql) {
       @$fp = fopen(ROOT.'cache/log/dberrorlog.php', 'a');
       @fwrite($fp, "<?PHP exit('Access Denied'); ?>/t$timestamp/t$onlineip/t".basename($php_self)."/t".htmlspecialchars($this->geterrdesc())."/t".str_replace(array("/r", "/n", "/t"), array(' ', ' ', ' '), trim(htmlspecialchars($sql)))."/n");
       @fclose($fp);
      }
  114.   $message = "<html>/n<head>/n";
      $message .= "<meta content=/"text/html; charset=utf-8/" http-equiv=/"Content-Type/">/n";
      $message .= "<style type=/"text/css/">/n";
      $message .=  "body,p,pre {/n";
      $message .=  "font:12px Verdana;/n";
      $message .=  "}/n";
      $message .=  "</style>/n";
      $message .= "</head>/n";
      $message .= "<body bgcolor=/"#FFFFFF/" text=/"#000000/" link=/"#006699/" vlink=/"#5493B4/">/n";
  115.   $message .= "<p>数据库出错:</p><pre><b>".htmlspecialchars($msg)."</b></pre>/n";
      $message .= "<b>Mysql error description</b>: ".htmlspecialchars($this->geterrdesc())."/n<br />";
      $message .= "<b>Mysql error number</b>: ".$this->geterrno()."/n<br />";
      $message .= "<b>Date</b>: ".date("Y-m-d @ H:i")."/n<br />";
      $message .= "<b>Script</b>: http://".$_SERVER['HTTP_HOST'].getenv("REQUEST_URI")."/n<br />";
  116.   $message .= "</body>/n</html>";
      echo $message;
      exit;
     }
     }
     
    ?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值