我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络编程 > PHP专区 > 基于PHP5的纯静态数据库访问类
热门文章排行
热门文章排行 PHP操作文件问答(01-11)
检查email地址格式的代码(01-11)
PHP安装攻略:安装并配置PHP(10-23)
用PHP实现文件上传二法(11-23)
搭建 Windows 下基于 Eclipse 的 PHP(11-21)
精采文章排行
精采文章排行 PHP连接MYSQL的两种方法(11-15)
PHP和MySQL开发的8个技巧(10-23)
PHP安装攻略:安装并配置PHP(10-23)
php+mysql扎实个人基本功(10-23)
PHP编程常用技巧四则(10-23)
技术专题推荐
网管论坛交流
 

基于PHP5的纯静态数据库访问类 

作者:   来源:   点击:   日期:2007-11-21

 <?php
  /*
  
  数据库访问类 db
  作者:朦朧中的罪惡
  完成时间: 2007年6月28日
  
  介绍:
  
  本访问类是基于PHP5的纯静态类,可以不实例化对象调用类的方法,在OOP开发中非常方便.本类带有数据库查询次数记忆,sql语句错误处理功能.具体功能请见代码.本类部分功能参考了discuz的数据库访问类功能后编写.
  
  
  如有什么地方写的不对或者不好请达人向我指出,本人虚心学习,谢谢.
  
  
  
  */
  class db {
  
   #公有属性
   public static $conn;
   public static $data;
   public static $fields;
   public static $row;
   public static $row_num;
   public static $insertid;
   public static $version;
   public static $affected_rows;
   public static $query_num = 0;
   public static $debug = false;
   #私有属性
   private static $user;
   private static $pass;
   private static $host;
   private static $db;
  
  
  
   #公有方法
  
   /*
   公有静态方法,链接数据库初始化数据库访问对象
   $host 服务器地址
   $user 用户名
   $pass 密码
   $db 数据库名称
  
   无返回值
   */
   public static function Connect($host,$user,$pass,$db) {
   self::$host = $host;
   self::$pass = $pass;
   self::$user = $user;
   self::$db = $db;
   self::$conn = @ mysql_connect($host,$user,$pass) or self::msg(’连接数据库失败!可能是mysql数据库用户名或密码不正确!’);
   self::selectdb(self::$db);
   if( self::version() >’4.1′ ) {
   mysql_query(”SET NAMES ‘utf8′”);
   }
   if( self::version() > ‘5.0.1′ ) {
   mysql_query(”SET sql_mode=””);
   }
  
   }
  
   public static function query($sql) {
   $query = @ mysql_query($sql,self::$conn) or self::msg(”SQL语法错误:”.htmlspecialchars($sql));
   if(self::$debug) {
   echo $sql . “<br>\n”;
   }
   self::query_num();
   return $query;
   }
  
   public static function fetch_array($query) {
   self::$data = @mysql_fetch_array($query);
   return self::$data;
   }
  
   public static function num_fields($query) {
   self::$fields = @mysql_num_fields($query);
   return self::$fields;
   }
  
   public static function fetch_row($query) {
   self::$row = @mysql_fetch_row($query);
   return self::$row;
   }
  
   public static function num_rows($query) {
   self::$row_num = @mysql_num_rows($query);
   return self::$row_num;
   }
  
   public static function insert_id() {
   self::$insertid = mysql_insert_id();
   return self::$insertid;
   }
  
   public static function affected_rows() {
   self::$affected_rows = mysql_affected_rows(self::$conn);
   return self::$affected_rows;
   }
  
  
   public static function fetch_one_array($sql){
   $query = self::query($sql);
   self::$data = self::fetch_array($query);
   return self::$data;
   }
  
   public static function close() {
   mysql_close(self::$conn);
   }
  
   #私有方法
  
   private static function query_num(){
   self::$query_num++;
   }
  
   private static function selectdb($db) {
   mysql_select_db($db,self::$conn) or self::msg(’未找到指定数据库!’);
   }
  
   private static function version() {
   self::$version = mysql_get_server_info();
   return self::$version;
   }
  
   private static function geterror() {
   return mysql_error();
   }
  
   private static function geterrno() {
   return intval(mysql_errno());
   }
  
   private static function msg($info) {
   echo “<html><head>\n”;
   echo “<meta http-equiv=\”Content-Type\” content=\”text/html ; charset=utf-8\”>\n”;
   echo “<title>警告,MySql查询错误.</title></head>\n<body>\n”;
   echo “<table width=\”800\” align=\”center\” bgcolor=\”#f6f6f6\” cellpadding=\”0\” cellspacing=\”0\”>”;
   echo “<tr><td style=\”font-size:13px;font-family:Verdana;\”>\t<b>错误信息:</b>$info<br />”;
   echo “<b>Mysql error:</b><br />”.self::geterror().”<br />”;
   echo “<b>Mysql error number:</b>”.self::geterrno().”<br />\n”;
   echo “<b>Time</b>: “.gmdate(”Y-n-j g:ia”, time() + (8 * 3600)).”<br />\n”;
   echo “<b>Script</b>: “.$_SERVER[’PHP_SELF’].”<br /></td></tr>\n”;
   echo “</table>\n</body>\n</html>\n”;
   exit;
   }
  
  }
  ?>


文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。