<? 
require_once(dirname(__FILE__)."./config.php");
/** 
* 数据库的连接与各项基本操作 

* 实现数据库 连接,并提供insert,update,delete等基本的数据库查询语句执行方法, 
* 返回查询结果集或函数执行结果。 

* @version V1.0,2005-07-26 
*/ class Connect 

/** 
* @var Object $conn 数据库连接字 
* @Access private 
*/ 
var $conn; 
var $result; 
var $num; //查询所得记录数 
var $error; //错误信息 
var $row; //一条记录 
var $insert_id; //自动增量值 /** 
* 构造方法,根据给定的主机名,用户名,密码,数据库名建立与数据库的连接, 
* 如果连接失败则抛出错误。 

* @param String $host 数据库所在主机名或地址 
* @param String $user 数据库上的一个用户名 
* @param String $pwd 用户名对应的密码 
* @param String $db 需要连接的库名 

* @access public 
*/ 
function Connect($host="localhost",$user="root",$pwd="",$db="hy") { 
$this->conn = $this->mysql_db_connect($host,$user,$pwd,$db); 

/** 
* 执行一条sql语句,如果是查询语句,则返回一个以字段名为下标的二维数组; 
* 如果是一条执行语句,则返回执行结果,执行成功返回true,失败返回false。示例如下: 
* @param String $sql 需要执行的查询语句 
* @return array 以字段名为下标的数组集合或者Boolean值 
* @access public 
*/ 
function execute($sql) { if(strtolower(substr($sql,0,6))=="select") 

//echo $sql; 
return $this->Query($sql); 
} else { 
if($this->result = mysql_query($sql,$this->conn)) return true; 
else 
return false; 

} /** 
* 取得上次查询所得数据的记录数 
* @return int 查询所得记录数 
* @access public 
*/ 
function getNum() { 
return $this->num; 
} /** 
* 向指定的数据表中插入一条记录 
* @param String $table 插入数据的数据表名 
* @param Array $array 以字段名为下标的数组,如:<code> 

* @return Boolean 插入成功返回true,失败返回false 
*/ 
function insertSql($table,$array) { 
$t1 = array(); 
$t2 = array(); 
foreach($array as $key=>$value) { 
$t1[] = $key; 
$t2[] = "'".$value."'"; 

$sql = "insert into ".$table." (".implode(",",$t1).") values (".implode(",",$t2).")"; //echo $sql; if($this->execute($sql)) { 
$this->insert_id = mysql_insert_id(); 
return true; 
} else 
throw new Exception("错误的SQL语句:".$sql); 
} /** 
* 取得最用一个插入有自动增量字段的自动增量值 
* @return int 最后一个自动增量值 
* @access public 
*/ 
function getInsertID() { 
return $this->insert_id; 
} /** 
* 删除给定表中的数据 
* @param String $table 表名 
* @param Array $array 删除条件,用法同function insertSql($table,$array) 中的参数$array 
* @return Boolean 
* @access public 
*/ 
function delSql($table,$array) { 
$t1 = array(); 
foreach($array as $key=>$value) { 
$t1[] = $key."='".$value."'"; 

$sql = "delete from ".$table." where ".implode(" and ",$t1); 
if($this->execute($sql)) 
return true; 
else 
throw new Exception("错误的SQL语句:".$sql); 

/** 
* 修改给定表中的数据 
* @param String $table 表名 
* @param Array $array 修改的字段名和值,用法同function insertSql($table,$array) 中的参数$array 
* @return Boolean 修改成功返回true,失败返回false 
* @access public 
*/ 
function updateSql($table,$array,$where=0) { 
$t1 = array(); 
foreach($array as $key=>$value) { 
$t1[] = $key."='".$value."'"; } 
$sql = "update ".$table." set ".implode(", ",$t1)." where ".$where; if($this->execute($sql)) 
return true; 
else 
throw new Exception("错误的SQL语句:".$sql); 

/** 
* 返回最后一次Insert或Update操作受影响的数据行数 
* @return int 行数 
* @access public 
*/ 
function getAffectedRows() { 
return mysql_affected_rows(); 
} /*************** private fucntions ********************/ 
/** 
*连接数据库 
*@access private 
*/ 
function mysql_db_connect($host,$user,$pwd,$db) { 
$conn = mysql_connect($host,$user,$pwd) or die(mysql_error()); 
mysql_select_db($db,$conn) or die(mysql_error()); 
return $conn; 
} /** 
* 执行一句查询语句,返回一个以字段名为下标的数组集合 

* @param String $sql 需要执行的查询语句 
* @return Array 以字段名为下标的数组集合 
* @access private 
*/ 
function Query($sql) { 
$array = array(); 
if(!$this->result = mysql_query($sql,$this->conn)) { 
$this->num = 0; 
return $array; 

$this->num = mysql_num_rows($this->result); 
for($i=0;$i < mysql_num_fields($this->result);$i++) { 
$field[$i] = mysql_field_name($this->result,$i); 

for($i=0;$i<$this->num;$i++) { 
$parray = $this->getRow(); 
$array[$i] = $parray; 

return $array; 
} /** 
* 取得查询所得数据集中一条数据 
* @return Array 
* @access private 
*/ 
function getRow() { 
$array = array(); 
if($this->num==0) 
return $array; 
$fields = mysql_num_fields($this->result); 
$this->row = mysql_fetch_array($this->result);// or die(mysql_error()); 
for($i=0;$i<$fields;$i++) { 
$array[mysql_field_name($this->result,$i)] = $this->row[$i]; 

return $array; 


?>为什么出错呢??