日期:2013-06-11  浏览次数:20512 次

<?php
require_once('db_config.php');//为了安全考虑放在另一个文件中.

class DBManager
{
 private static $conn;

 public static function getConnection()
 {
  if(self::$conn===NULL)
  {
   $newConn=@new mysqli(hostname,username,password,dbname);
   if(mysqli_connect_errno()!==0)
   {
    $msg=mysqli_connect_error();
    throw new DatabaseErrorException($msg);
   }
   @$newConn->query("set names \'utf8\'");
   self::$conn=$newConn;
  }
  return self::$conn;
 }
};

?>
<?php
/*
这是数据库管理的类,定义这个类的主要作用是做连接数据库时的一些额外工作,在这个类中,每次连接数据库时都查看一下数据库是否已经连接,这样就能保证永远只有一个数据库连接,从而节省了资源。而使用者也不用考虑以前是否已经存在这个连接,只要用到数据库连接,而且在不确定之前是否有连接的情况下,我都可以通过$conn=DBManager::getConnection()获得一个连接。另外,这个类还做了一个工作,query('set names '\utf-8\'),这样告诉数据库本次查询和写入使用utf-8字符集,这也是很有必要的。
如下为一个使用范例:


require_once("db_manager.php");

$conn=DBManager::getConnection();

$result=@$conn->query("select * from stuinfo");
if(mysqli_connect_errno())
 echo mysqli_connect_error();

$rowNum=$result->num_rows;
echo "\$rowNum=$rowNum";
echo '<br />';

//再次调用,但返回的还是上一次的连接.
$conn=DBManager::getConnection();
var_dump($conn);


*/
?>