美文网首页
[PDO]①⑧--数据库操作类之构造函数

[PDO]①⑧--数据库操作类之构造函数

作者: 子木同 | 来源:发表于2017-09-05 16:17 被阅读15次
Paste_Image.png

PdoMYSQL.class.func

<?php

class PdoMYSQL
{
    public static $config = array();//设置配置参数,配置信息
    public static $link = null;//保存连接标识符
    public static $pconnect = false;//是否开启长连接
    public static $dbVersion = null;//保存数据库版本
    public static $connected = false;//判断是否连接成功
    public static $PDOStatement = null;//保存PDOStatement对象

    public function __construct($dbConfig = '')
    {
        if (!class_exists("PDO")) {
            self::throw_exception('不支持PDO,请先开启');
        }
        if (!is_array($dbConfig)) {
            $dbConfig = array(
                'hostname' => DB_HOST,
                'username' => DB_USER,
                'password' => DB_PWD,
                'database' => DB_NAME,
                'hostport' => DB_PORT,
                'dsn' => DB_TYPE . ":host=" . DB_HOST . ";dbname=" . DB_NAME);
        }
        if (empty($dbConfig['hostname']))
            self::throw_exception('没有定义数据库配置,请先定义');
        self::$config = $dbConfig;
        if (empty(self::$config['params']))
            self::$config['params'] = array();
        if (!isset(self::$link)) {
            $configs = self::$config;
            if (self::$pconnect) {
                //开启长连接,添加到配置数组中
                $configs['params'][constant("PDO::ATTR_PERSISTENT")] = true;
            }
            try {
                self::$link = new PDO($configs['dsn'], $configs['username'], $configs['password'], $configs['params']);
            } catch (PDOException $e) {
                self::throw_exception($e->getMessage());
            }
            if (!self::$link) {
                self::throw_exception('PDO连接错误');
                return false;
            }
            self::$link->exec('SET NAMES ' . DB_CHARSET);
            self::$dbVersion = self::$link->getAttribute(constant("PDO::ATTR_SERVER_VERSION"));
            self::$connected = true;
            unset($configs);
        }
    }

    /**得到所有记录
     * @param null $sql
     * @return mixed
     */
    public static function getAll($sql = null)
    {
        if (!$sql) {
            self::query($sql);
        }
        $result = self::$PDOStatement->fetchAll(constant("PDO::FETCH_ASSOC"));
        return $result;
    }

    /**
     * 自定义错误处理
     * @param $errMsg
     */
    public static function throw_exception($errMsg)
    {
        echo '<div style="width:80%;background-color:#ABCDEF;color: black;font-size: 20px;padding: 20px 0px">
        ' . $errMsg . '</div>';
    }

}

相关文章

  • DSN

    PDO构造函数 在PDO中,要建立与数据库的连接需要实例化PDO的构造函数,PDO构造函数的语法如下: __con...

  • [PDO]①⑧--数据库操作类之构造函数

    PdoMYSQL.class.func

  • PDO

    PDO就是PHP Data Object的简称。PDO主要用来代替数据库操作类。PHP同时可以操作多个数据库。例如...

  • PDO

    PDO:php数据抽象层操作数据库,简单理解就是一个用于操作数据库的对象; pdo原理 PDO主要分为三大类: P...

  • PHP里的PDO

    一、 PDO类的构造方法: -------------------------------------------...

  • pdo类

    pdo类PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,...

  • pdo调试三个类以及事务处理

    pdo三个类 pdo类和数据库连接有关的类(连接,执行) PDOSatement类准备语句 PDOExceptio...

  • 九月十六

    PHP类和对象之构造函数和析构函数 PHP5可以在类中使用__construct()定义一个构造函数,具有构造函数...

  • 实现一个类的构造函数,拷贝构造函数,析构函数与赋值操作符

    搬运自大神博客 题目 为下面的Rectangle类实现构造函数,拷贝构造函数,赋值操作符,析构函数。 解析 构造函...

  • 第4天 PDO

    PDO 1. PDO概述 PDO,PHP Data Object,也是PHP操作数据库的一个扩展pdo扩展有一个很...

网友评论

      本文标题:[PDO]①⑧--数据库操作类之构造函数

      本文链接:https://www.haomeiwen.com/subject/uqwujxtx.html