返回PHP中单例模......登陆

PHP中单例模式连接数据库

2019-06-03 14:07:51235
<?php
/**
 * Created by PhpStorm.
 * 单例模式连接数据库
1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;
2、拥有一个保存类的实例的静态成员变量
3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化)
 */

class Db
{
    private static $pdo;

    public static function getPdo ()
    {
        var_dump(self::$pdo);
        echo '</br>';
        if ( self::$pdo == null )
        {
            $host = '127.0.0.1';
            $user = 'root';
            $pwd = 'root';
            $dbname = 'php_edu';
            $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8;port=3306";
            $pdo = new PDO ( $dsn, $user, $pwd );
            $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            static::$pdo = $pdo;
        }
        return static::$pdo;
    }

    public static function getStmt ( $sql )
    {
        $pdo = static::getPdo ();
        return $pdo -> prepare( $sql );
    }
    public static function getinsertids()
    {
        $pdo = self::getPdo();
        $insertid = $pdo->lastInsertId();
        return $insertid;
    }
}
$sql = "SELECT * FROM user";
$stmt = Db::getStmt ( $sql );
$stmt = Db::getStmt ( $sql );
?>


最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送