var $host;//用户名
var $username;//密码
var $password;//数据库名
var $dbname;//字符集
var $charset;//数据库连接对象,主要用在mysql_query($sql,$this->con);
private $con;//外界获取的mysqlDB类操作对象
public static $dao;//获得mysqlDB类对象(单例)
public static function getInstance($config){if(!isset(self::$dao)){
self::$dao = new self($config);
}return self::$dao;
}//private禁止外部new,减少new带来的开销,并设置默认的配置。
private function __construct($config){$this->host = isset($config['host'])?$config['host']:'localhost';$this->port = isset($config['port'])?$config['port']:'3306';$this->username = isset($config['username'])?$config['username']:'root';$this->password = isset($config['password'])?$config['password']:'root';$this->dbname = isset($config['dbname'])?$config['dbname']:'test';$this->charset = isset($config['charset'])?$config['charset']:'utf8';//连接数据库
$this->con = $this->connect();//设置数据库名,默认为test
$this->useDb($this->dbname);//设置字符集,默认为utf8。
$this->setCharset($this->charset);
}//禁止外部克隆
private function__clone(){
}//连接不成功在这个分段找。
//
//连接数据库
public functionconnect(){$con =
mysql_connect("$this->host:$this->port","$this->username","$this->password") or die("连接数据库失败");return $con;
}//1.执行增、删、改sql语句
public function exec($sql){$res = mysql_query($sql,$this->con);if($res){//echo "
sql语句:".$sql."
";
// var_dump($res);
return true;//要是增删改有问题可以在这里输出sql调试。
}else{echo "
sql语句:".$sql;echo "
:".mysql_error();echo "
:".mysql_errno();exit;
}
}//额外设置字符集
public function setCharset($charset){$sql = "set names '$charset'";$this->exec($sql) or die("set");//die();
}//额外设置数据库
public function useDb($dbname){$sql = "use $dbname";$this->exec($sql) or die("use");//or die()函数前面需返回对应的true或false;
}
//查找出错在这个部分找。
//4.将查到的结果集转为单个数据,这里是索引数组的第一个字段。
public function getOne($sql){$rec = mysql_query($sql,$this->con);$res = mysql_fetch_row($rec);if($res){return $res[0];
}else{return false;
}
}//可能修改的函数全部放在上面,以便查找。下方函数基本不会修改。
//编号1~4是高频率使用的函数。
//2.获取一行数据(一维)
public function getRow($sql){$rec = mysql_query($sql,$this->con);$res = mysql_fetch_assoc($rec);if($res){return $res;
}else{return false;
}
}//3.获取所有数据(二维)
public function getAll($sql){$rec = mysql_query($sql,$this->con);$arr = array();//定义 一个数组
while($res = mysql_fetch_assoc($rec)){$arr[] = $res;
}if($arr){return $arr;
}else{return false;
}
}
}$dao = DB::getInstance(null);?>
$res = $dao->getRow($sql); var_dump($res);//以上的getRow函数只是举例,具体如何使用这个工具,首先要在你的php文件中include这个工具类,即include_once("DB.class.php");
//1.要看你的sql语句查回的数据是一维的,还是二维的,或者单个数据。
//对应的函数是getROW,getAll,getOne。
//2.增删改统一用exec。
//3.数据库的连接配置在构造构造函数中修改。
?>注意事项:1.文件DB.class.php建好后。2.在你需要操作数据库接的文件中include这个文件,上面有示例。3.使用之前必须把数据库名改成你的数据库名。这个是最重要的,也是最容易忘记的。