<?php
class Database
{
public $db=null;
public function __construct($config=array())
{
$dbms='mysql'; //数据库类型
$host='localhost'; //数据库主机名
$dbName='laravel'; //使用的数据库
$user='root'; //数据库连接用户名
$pass='123456'; //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName";
try {
$this->db = new PDO($dsn, $user, $pass); //初始化一个PDO对象
// echo "连接成功<br/>";
/*你还可以进行一次搜索操作
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
}
*/
// $this->db = null;
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
}
}
}
$db1 = new Database($config);
var_dump($db1);
$db2 = new Database($config);
var_dump($db2);
$db3 = new Database($config);
var_dump($db3);
<?php
/**
* Created by PhpStorm.
* User: 海峡
* Date: 2020/12/29
* Time: 22:22
*/
class Database
{
//四私一公 单例模式
private static $instance = null;//当前实例化后的对象
//数据库句柄
private $db=null;
//禁止外部使用,构造私有
private function __construct($config=array())
{
//对应的密码
$dsn="{$config['dbms']}:host={$config['host']};dbname={$config['dbname']}";
try {
$this->db = new PDO($dsn, $config['user'], $config['pass']); //初始化一个PDO对象
echo "连接成功<br/>";
/*你还可以进行一次搜索操作
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
}
*/
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
}
}
//获取当前容器单例
public static function getInstance($config=array())
{
if(self::$instance==null){
self::$instance = new self($config);
}
return self::$instance;
}
//获取数据库句柄
public function db()
{
return $this->db;
}
//禁止克隆
private function __clone()
{
// TODO: Implement __clone() method.
}
//禁止重建
private function __wakeup()
{
// TODO: Implement __wakeup() method.
}
}
$config['dbms'] ='mysql'; //数据库类型
$config['host'] ='localhost'; //数据库主机名
$config['dbname'] ='blog'; //使用的数据库
$config['user'] ='root'; //数据库连接用户名
$config['pass'] ='root';
$db1 = Database::getInstance($config);
var_dump($db1);
$db2 = Database::getInstance($config);
var_dump($db2);
$db3 = Database::getInstance($config);
var_dump($db3);