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());
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|