基于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; } } ?>
【文章评论 】
【收藏本文 】
【推荐好友 】
【打印本文 】
【论坛讨论 】
相关文章:
文章评论: (条)
责任编辑:一分 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。