<?php
class DB {
private $mysql_host;
private $mysql_user;
private $mysql_pass;
private $mysql_db;
private $con;
function connect(){
$con=mysql_connect($this->mysql_host,$this->mysql_user,$this->mysql_pass);
mysql_select_db($this->mysql_db);
$this->con=$con;
return $con;
}
function __set($name,$value){
$this->$name=$value;
}
function __get($name){
return $this->$name;
}
function close(){
if(!is_null($con))
mysql_close($con);
}
function __destruct(){
if(!is_null($con))
mysql_close($con);
}
function insert(){
}
function update(){
}
function delete(){
}
//本方法查询数据库并封装一个对象返回
//如果有多条数据就返回一个数组
function query($sql,$object){
if(is_null($con))
$this->connect();
$rs=mysql_query($sql);
$num=mysql_num_rows($rs);
if($num==0){
mysql_free_result($rs);
return null;
}else if($num==1){
for($i=0;$i<$num;$i++){
for($j=0;$j<mysql_num_fields($rs);$j++){
$field=mysql_field_name($rs,$j);
$row=mysql_fetch_assoc($rs);
$object->$field=$row[$field];
}
}
mysql_free_result($rs);
return $object;
}else { //查询出了多条记录,返回一个数组
$array=Array();
for($i=0;$i<$num;$i++){
$o=clone $object;
$row=mysql_fetch_assoc($rs);
for($j=0;$j<mysql_num_fields($rs);$j++){
$field=mysql_field_name($rs,$j);
$o->$field=$row[$field];
}
array_push($array,$o);
}
mysql_free_result($rs);
return $array;
}
}
}
function analysis($file){
echo '<br/>-----analysis----<br/>';
$dbf=fopen($file,'r');
$db=new DB();
while(!feof($dbf)){
$line=fgets($dbf);
if(strlen(trim($line))==0)break;
$key=trim(strtok($line,'='));
$value=trim(strtok('='));
$db->$key=$value;
}
return $db;
}
$db=analysis('db.ini');
?>