用PHP开始你的MVC (二)抽象数据库接口(2)
class Db{
/*
* 当前数据库联接选项
*/
var $dbHost = DB_HOST;
var $dbName = DB_NAME;
var $dbType = 'Mysql';
var $dbUser = DB_USER;
var $dbPwd = DB_PWD;
var $pcnn = DB_PCONNECT;
/*
* 当前数据库连接
*/
var $cnn = '';
/*
* 数据查询结果的返回类型
*/
var $queryFetchType = DB_FETCH_ASSOC;
/*
* 初始化函数
*/
function Db(){
$this->cnn = ($this->pcnn? mysql_connect($this->dbHost, $this->dbUser, $this->dbPwd):
mysql_connect($this->dbHost, $this->dbUser, $this->dbPwd)) or
$this->_halt('数据库连接错误');
mysql_select_db($this->dbName, $this->cnn) or $this->_halt('数据库选择错误');
}
/*
* 数据查询函数
*
* @param $sql string 数据查询语句
* @param $fetchType int 数据查询结果的返回类型
*
* @return array 数据查询结果
*/
function &query($sql, $fetchType=DB_FETCH_ASSOC){
$data = array();
$rs = &mysql_query($sql, $this->cnn) or $this->_halt('数据查询错误', $sql);
$exe = $this->_getCommand($fetchType);
while($row=&$exe($rs))
$data[] = &$row;
return $data;
}
/*
* 分页数据查询函数
*
* @param $sql string 数据查询语句
* @param $page int 当前预查询页码
* @param $pageSize int 每页显示多少条纪录
* @param $fetchType int 数据查询结果的返回类型
*
* 数据查询结果,以及数据的分页信息
* @return array('pageSize' => 每页显示的条数
* 'recordCount' => 总纪录数
* 'pageCount' => 总页数
* 'page' => 当前页码
* 'isFirst' => 是否第一页
* 'isLast' => 是否最后一页
* 'start' => 返回结果的第一条纪录的序号
* 'sql' => 查询的sql语句
* 'data' => 查询得到的数据结果
* )
* 数据查询结果,以及数据的分页信息
*/