基于PHP5的纯静态数据库访问类.
时间:2007-07-06
来源:互联网
<?php
/*
数据库访问类 db
作者:朦�V中的罪��
博客地址:http://www.phpweblog.net/be-evil/
完成时间: 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;
}
}
?>
[ 本帖最后由 朦�V中的罪�� 于 2007-7-5 19:49 编辑 ]
/*
数据库访问类 db
作者:朦�V中的罪��
博客地址:http://www.phpweblog.net/be-evil/
完成时间: 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;
}
}
?>
[ 本帖最后由 朦�V中的罪�� 于 2007-7-5 19:49 编辑 ]
作者: 朦�V中的罪� 发布时间: 2007-07-05
设一下高亮.......
作者: wukeyuan 发布时间: 2007-07-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28