<?php
/* 数据库查询类 start*/
class Database
{
var $dbhostname;
var $dbname;
var $dbuser;
var $dbpassword;
var $connid;
var $query;
var $result;
var $resultid;
var $insertid;
var $rows;
var $errCode = 0;
var $errString = "";
var $debugString = "";
var $xml = "";
/* 构造函数 */
function Database()
{
$this->dbhostname = "localhost"; //登录数据库主机名
$this->dbname = "yourdb"; /数据库名
$this->dbuser = "root"; //数据库登录用户名
$this->dbpassword = ""; //数据库登录密码
$this->_connect(); //连接数据库
$this->_db_select(); //选择数据库
}
/* 数据库执行函数, $type 执行操作类型, ""为查询, "update"为更新, "insert"为插入, "delete"为删除 */
function db_query($sql,$type)
{
$this->query = $sql;
if ($this->_query())
{
if(empty($type))
{
$this->_num_rows(); //返回查询的函数
$this->result = $this->_fetch_array(); //返回查询结果
}
if ($type == "insert")
{
$this->insertid=@mysql_insert_id(); //返回插入的ID自动增量
}
return true;
}
else
return false;
}
/* 数据库结果生成XML */
function createXML($itemroot="child",$item="root")
{
$dom = new DOMDocument("1.0","utf-8");
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$rootNode = $dom->createElement($item);
for($i=0;$i<count($this->result);$i++)
{
$itemNode = $dom->createElement($itemroot);
foreach($this->result[$i] as $key=>$value)
{
//$value = iconv("gb2312","utf-8",$value);
$tmpNode = $dom->createElement($key,$value);
$itemNode->appendChild($tmpNode);
}
$rootNode->appendChild($itemNode);
}
$dom->appendChild($rootNode);
if ($this->xml = $dom->saveXML())
return $this->xml;
else
return false;
}
/* 连接数据库 */
function _connect()
{
$this->connid = @mysql_connect($this->dbhostname,$this->dbuser,$this->dbpassword);
if (false == $this->connid)
{
$this->errCode = 1;
$this->errString = "不能连接数据库!";
$this->debugString = "不能连接数据库: ".mysql_error();
$this->showErr();
return false;
}
else
return true;
}
/* 选择数据库 */
function _db_select()
{
$selectFlag = @mysql_select_db($this->dbname,$this->connid);
if (false == $selectFlag)
{
$this->errCode = 2;
$this->errString = "不能选择数据库!";
$this->debugString = "不能选择数据库: ".$this->dbname;
$this->showErr();
return false;
}
else
return true;
}
/* 数据库查询语句 */
function _query()
{
$this->resultid = @mysql_query($this->query,$this->connid);
if (false == $this->resultid )
{
$this->errCode = 3;
$this->errString = "数据库查询语句错误!";
$this->debugString = "数据库查询语句错误: ".$this->query.mysql_error();
$this->showErr();
return false;
}
else
return true;
}
/* 返回查询记录总数 */
function _num_rows()
{
$this->rows = @mysql_num_rows($this->resultid);
}
/* 返回结果数组 */
function _fetch_array()
{
if ($this->errCode != 3)
{
$tmpResult = "";
$i = 0;
while ($row = mysql_fetch_array($this->resultid,MYSQL_ASSOC))
{
$tmpResult[$i] = $row;
$i++;
}//end while.
return empty($tmpResult) ? NULL : $tmpResult;
}
}
/* 显示错误信息 $debugString用于调试,$errString用于给客户显示 */
function showErr()
{
//echo $this->debugString."/n";
}
/* 关闭连接,释放内存 */
function close()
{
@mysql_free_result($this->resultid);
@mysql_close($this->connid);
}
function __destruct()
{
if($this->connid)
{
$this->close();
}
}
}
/* 数据库查询类 end*/
?>