zoukankan      html  css  js  c++  java
  • php链接数据库

    /**
     * 连接数据库。
     *
     * @param  string  $dbOption  数据库配置项。
     * @return void
     */
    final public function connection($dbOption = '')
    {
        if (strlen($dbOption) > 0) {
            $this->dbOption = $dbOption;
        }
        $registryName = "mysql_{$this->dbOption}";
        // [1] 传统初始化MySQL方式。
        $config = App::getDbConfig();
        if (!isset($config[$dbOption])) {
            throw new DbException("MySQL 配置:{$dbOption} 未设置");
        }
        $config   = $config[$dbOption];
        $host     = $config['host'];
        $port     = $config['port'];
        $username = $config['user'];
        $password = $config['pwd'];
        $charset  = $config['charset'];
        $dbname   = $config['dbname'];
        $pconnect = $config['pconnect'];
        $dsn      = "mysql:dbname={$dbname};host={$host};port={$port}";
        $dbh      = new PDO($dsn, $username, $password, [PDO::ATTR_PERSISTENT => $pconnect]);
        // MySQL操作出错,抛出异常。
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $dbh->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_NATURAL);
        $dbh->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, FALSE);
        $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
        // 以关联数组返回查询结果。
        $dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
        $dbh->query("SET NAMES {$charset}");
        self::$connectedIdent[$registryName] = $dbOption; // 之所以以连接标识做键,是避免多次连接导致持续的增加。
        Registry::set($registryName, $dbh);
    }
    

    配置如下

    ; MySQL 配置
    mysql.default.host     = 127.0.0.1
    mysql.default.port     = 3306
    mysql.default.user     = xxx
    mysql.default.pwd      = xxx
    mysql.default.dbname   = xxx
    mysql.default.charset  = utf8
    mysql.default.pconnect = false
    
    /**
     * 构造方法。
     *
     * @param  string  $dbOption  数据库配置项。
     * @return void
     */
    public function __construct($dbOption = '')
    {
        if (strlen($dbOption) > 0) {
            $this->dbOption = $dbOption;
            $this->changeDb($this->dbOption);
        }
    }
    
    /**
     * 切换数据库连接。
     *
     * @param  string  $dbOption  数据库配置项。
     * @return void
     */
    final public function changeDb($dbOption)
    {
        $registryName = "mysql_{$dbOption}";
        if (Registry::has($registryName) === false) {
            $this->connection($dbOption);
        }
        $this->dbConnection = Registry::get($registryName);
    }
    

    初始化的时候,自动连接数据库。
    然后就可以进行各种操作了。

  • 相关阅读:
    Android开发_Animation
    spring开发_JDBC操作MySQL数据库_使用xml配置事务管理
    spring开发_AOP_代理模式
    java file 文件操作 operate file of java
    spring开发_spring构造注入Bean
    spring开发_spring中Bean的作用域_singleton_prototype
    spring开发_JDBC操作MySQL数据库
    java的jxl技术导入Excel
    spring开发_spring环境搭建
    魅族m8开发 step by step(1)(让程序跑起来)
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/12145641.html
Copyright © 2011-2022 走看看