首先这是一个类没错,个人觉得还有些需要改进。1.为了将来的代码重用,易扩展,建议应抽像出数据分行代码显示的基类,并创建该类的通用方法,属性。
具体使用是可继承此基类,扩展出一些更具体的属性或方法2.即然类的方法中已内嵌了HTML代码,可以将"<table width=400 align=center border=1 bordercolordark=white bordercolorlight=black cellspacing=0>"及“<tr align=center>"等HTML代码也加入的类中,相关HTML属性,可创建相应的方法来配置。这样更具通用性,不会因为页面中修改了
“<tr align=right>" 而要修改类中的代码,以保持页面一致。
具体使用是可继承此基类,扩展出一些更具体的属性或方法2.即然类的方法中已内嵌了HTML代码,可以将"<table width=400 align=center border=1 bordercolordark=white bordercolorlight=black cellspacing=0>"及“<tr align=center>"等HTML代码也加入的类中,相关HTML属性,可创建相应的方法来配置。这样更具通用性,不会因为页面中修改了
“<tr align=right>" 而要修改类中的代码,以保持页面一致。
解决方案 »
- 从浏览器访问wamp虚拟目录下的文件,显示的却是localhost页面
- 搞PHP 与 linux关系大麽 求解
- session不能获取值
- 为什么提交不了 数据
- 请问php/mysql网站一般通过哪些渠道注入,怎么防注入啊?请大家帮忙一下,万分感谢!
- 如果数据不存在即跳转到下一页,如何实现?
- 安装ZendOptimizer3.3.0出现问题
- 对于现在才开始学语言的人来说,学习ASP.NET好,还是PHP好。这里是PHP论坛,请客关点。
- php入门 到 连接MySql的 循序渐进的好书?
- preg_split 分割字符串的问题
- 关于php如何入门?
- 请问高手如何在按button 刷新之后,页面能够保持在原来的位置
/*
********************************************************************
* Editor : EditPlus+ 2.11 *
******************************************************************** +------------------------------------------------------------------+
| PHP Version 4 |
+------------------------------------------------------------------+
| Copyright (C) 2004-2005 All Right Reseved Pc Rookie's |
+------------------------------------------------------------------+
| Notices: |
| If you found any error in the source code. Then I'll hope you s-|
|end Bug email to us. So we'll thank you very much. |
| |
| |
| |
+------------------------------------------------------------------+
| Website : http://www.5down6.net |
| Author : Pc Rookie's |
| Contact Email : [email protected] |
| LastModify : 2004/11/12 |
+------------------------------------------------------------------+
+------------------------------------------------------------------+
| FileName : DB.php |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| Function : Database independent query interface |
+------------------------------------------------------------------+
*/class DB
{
var $Host = ""; //数据库主机
var $Database = ""; //数据库
var $User = ""; //用户名
var $Password = ""; //密码 var $Auto_Free = 0; //设置为1程序结束会执行mysql_free_result()
var $Debug = 1; //设置为0不显示调试信息
var $Halt_On_Err = "yes";/*设置为"yes"终止错误并显示信息;
设置为"no"忽略错误;
设置为"report"忽略错误,但是会报告错误.
*/
var $PConnect = 0; //设置为1数据库将使用mysql_pconnect持久连接
var $linkID = 0; //链接标识
var $queryID = 0; //查询结果标识 var $queryRow = 0; //SQL影响的行 //数据库链接方法
/*
返回值:
链接资源标识
*/
function DB($Host = "", $User = "", $Password = "", $Database = "")
{
//检查各项参数是否为空
if(!($this -> Host == "") && !($this -> User == "") && !($this -> Database== ""))
{
//不为空!
$Host = $this -> Host;
$User = $this -> User;
$Password = $this -> Password;
$Database = $this -> Database;
}
else
{
//为空!子类定义的参数不完整
die(SUB_CLASS_PARAMETER_IS_NOT_FULL);
}
//成功链接到数据库否
if($this -> linkID == 0)
{
//尚未链接到数据库!链接方式选择持久链接还是普通链接
if($this -> PConnect)
{
//持久链接
$this -> linkID = @mysql_pconnect($Host, $User, $Password);
}
else
{
//普通链接
$this -> linkID = @mysql_connect($Host, $User, $Password);
}
//成功链接到数据库否
if(!$this -> linkID)
{
//链接失败!输出错误信息
DB::mysql_err_msg();
}
else
{
//链接服务器成功!打开数据库失败否
if(!@mysql_select_db($this -> Database))
{
//数据库不存在则建立
if(!@mysql_query("create database ".$this -> Database));
{
//打开数据库失败!输出错误信息
DB::mysql_err_msg();
}
}
}
}
//返回成功的链接标识
return $this -> linkID;
} //SQL语句执行方法
/*
返回值:
SQL语句影响的总行数
SQL对任何行没产生影响则返回字符串
*/
function query($SQL = "")
{
//SQL语句为空否
if($SQL == "")
//为空!SQL语句为空
die(SQL_ERR_MSG_SQL_IS_EMPTY);
else
{
//不为空!执行SQL并将结果标识赋给$queryID
$this -> queryID = @mysql_query($SQL);
//SQL执行成功否
if(!$this -> queryID)
{
//失败!输出错误信息
DB::mysql_err_msg();
}
else
{
//成功!是SELECT语句否
if(eregi("select",$SQL))
{
//是(SELECT)
$this -> queryRow = @mysql_num_rows($this -> queryID);
}
else
{
//不是(是INSERT、DELETE、UPDATE)
$this -> queryRow = @mysql_affected_rows();
}
//响应SQL语句的记录数为0否
if(!($this -> queryRow))
//返回无记录响应提示信息
return $this -> queryRow = NOT_ANY_REC;
}
}
} //获取查询操作结果集
/*
返回值:
数组Key为数据库字段名的二维数组
*/
function rs()
{
//查询结果记录集为0否
if($this -> queryRow)
{
//结果不为0;有符合条件记录
//按行生成记录结果集
$result = mysql_fetch_object($this -> queryID);
//按照查询结果记录集的字段总数
for($j = 0; $j < mysql_num_fields($this -> queryID); $j++)
{
//依次获取字段名存入数组
$fields = mysql_field_name($this -> queryID, $j);
//按照[Key] => [Fields]、[Value] => [Value]赋值
$rs[$fields] = $result -> $fields;
}
//返回数组
return $rs;
}
} //获取分页参数的方法
/*
返回值:
数组(SQL影响记录数, 定义每页显示记录数, 当前页, 总页数, 每页开始标记, 每页结束标记)
使用:list函数获[推荐]
list($total_rec, $page_size, $page, $total_page, $page_start, $page_end) = $obj -> splitPage($page_size, $page); 直接获取[不推荐]
*/
function splitPage($page_size = 15,$page = 1)
{
//判断当前页面为第一页否
$page ? $page = $page : $page = 1;
//判断总记录数超过一页否
if($page_size > $this -> queryRow)
{
//记录不多于一页,设置总页数
$total_page = 1;
//当前页起始标记值
$page_start = 0;
//当前页结束标记值
$page_end = $this -> queryRow;
}
else
{
//记录总数多于一页,计算总页数
$total_page = ceil($this -> queryRow/$page_size);
//当前页起始标记值
$page_start = $page_size*($page-1);
//当前页结束标记值
$page_end = $page_size*$page;
//当前页为末页否
if($page_end > $this -> queryRow)
//为末页,更改当前页结束标记值为总记录数
$page_end = $this -> queryRow;
}
//定位数据库指针
@mysql_data_seek($this -> queryID, $page_end);
//返回数组
return $split = array($this -> queryRow, $page_size, $page, $total_page, $page_start, $page_end);
} //释放资源方法
function free()
{
@mysql_free_result($this ->queryID);
$this -> queryID = 0;
} //错误处理方法
function mysql_err_msg()
{
//获取错误代码
$this -> errno = @mysql_errno();
//获取错误信息
$this -> error = @mysql_error(); //输出错误代码、信息
$this -> print_mysql_error();
} //错误信息输出方法[返回字符串]
function print_mysql_error()
{
if($this -> Debug)
{
switch($this -> Halt_On_Err)
{
case("yes"):
//终止程序执行并输出错误代码、信息
die($this -> errno.":".$this -> error);
break;
case("no"):
break;
default:
//输出错误代码、信息
echo $this -> errno.":".$this -> error;
break;
}
}
}
?>