日期:2013-06-11 浏览次数:20539 次
<?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);
*/
?>