自己用PHP封装PDO之单例模式
下面这个类是记录一下,说不定之后写自己的框架的时候会用到。执行 sql 的逻辑需要自己diy哦。
连接数据库的地方也可以进行优化
主要功能:
- 单例模式(懒汉模式)
- 防止克隆
调用方式如下
$res = Db::getInstance();
DB类如下
Class DB
{
//单例数据库类
private static $_instance;
private $pdo;
private $db_host = "127.0.0.1";
private $db_user = "root";
private $db_pwd = "123456";
private $db_name = "test";
private $charset = "utf8";
private $db_port = "3306";
//阻止克隆对象
private function __clone()
{
}
//阻止new对象 private 修饰
private function __construct()
{
$this->connect();
$this->setCharSet();
}
/**
* 连接数据库
*/
private function connect()
{
try {
$this->pdo = new PDO("mysql:host=$this->db_host;port=$this->db_port;dbname=$this->db_name", $this->db_user, $this->db_pwd);
// echo "连接成功";
} catch (Exception $e) {
throw new Exception('MySql连接错误!');
// 写入日志逻辑...
file_put_contents(__DIR__ . '/log/'.strftime('%Y-%m-%d').'.log',$e->getMessage().PHP_EOL,FILE_APPEND);
return false;
}
}
//初始化Db类只需执行该静态方法
public static function getInstance(): Db
{
if (!(self::$_instance instanceof self)){
self::$_instance = new self();
}
return self::$_instance;
}
/**
* 设置字符集
*/
private function setCharSet(){
$this->pdo->query($this->charset);
}
// 执行sql语句, 无返回结果
public function exec($sql){
// diy......
}
// 执行select 语句,有返回结果
public function select(){
// diy....
}
}
...全文
相关推荐
php完美pdo类封装
总结起来,"php完美pdo类封装"是为了简化和优化PHP中的数据库操作,通过单例模式管理数据库连接,利用预处理语句提升安全性,提供丰富的操作接口,同时包含事务处理等功能,以提高代码的可读性和维护性。
pdo完整封装类,注释全面
php pdo类封装,单例模式,多种操作方式,预处理,事务
php代码-单例模式(一个类只有一个对象),并封装数据库连接
**数据库连接的封装**在PHP中,我们通常使用PDO(PHP Data Objects)或mysqli扩展来处理数据库连接。将数据库连接封装在单例模式中可以有效管理资源,防止因过多连接导致的问题。
php实现的pdo公共类定义与用法示例
整体而言,本文通过一个具体的pdo公共类实例,展示了如何在PHP中封装PDO操作,以便于项目中的重复利用,同时也加强了代码的可维护性和可读性。
封装一个PDO数据库操作类代码
本文档详细介绍了如何在PHP中封装一个名为"MysqlPdo"的数据库操作类,以实现对PDO(PHP Data Objects)数据库连接的高效管理和复用。该类遵循单一职责原则,通过单例模式确保在整个


