39 lines
953 B
PHP
39 lines
953 B
PHP
<?php
|
||
|
||
|
||
namespace fastphp\db;
|
||
|
||
use PDO;
|
||
use PDOException;
|
||
|
||
/**
|
||
* 数据库操作类
|
||
* 其属性$pdo为静态属性,所以在页面执行周期内
|
||
* 只要一次赋值,以后获取的还是首次赋值的内容
|
||
* 这里就是pdo对象,这样可以保证运行期间只有
|
||
* 一个数据库连接对象,简单的单例模式
|
||
* Class Db
|
||
* @package fastphp\db
|
||
*/
|
||
class Db
|
||
{
|
||
private static $pdo = null;
|
||
|
||
public static function pdo(){
|
||
if(self::$pdo !== null){
|
||
return self::$pdo;
|
||
}
|
||
|
||
try{
|
||
$dns = sprintf('mysql:host=%s;post=%s;dbname=%s;chartset=utf8',DB_HOST,DB_PORT,DB_NAME);
|
||
$option = array(PDO::ATTR_DEFAULT_FETCH_MODE=>PDO::FETCH_ASSOC);
|
||
self::$pdo = new PDO($dns,DB_USER,DB_PASS,$option);
|
||
self::$pdo->query("set names utf8");
|
||
|
||
return self::$pdo;
|
||
|
||
} catch (PDOException $e){
|
||
exit($e->getMessage());
|
||
}
|
||
}
|
||
} |