<?php
require_once('db_config.php');//为了安全考虑放在另一个文件中.
class dbmanager
{
private static $conn;
public static function getconnection()
{
if(self::$conn===null)
{
$[email protected] 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();
$[email protected]$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);
*/
?>
新闻热点
疑难解答