php链接数据库在哪里,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);

}

初始化的时候,自动连接数据库。

然后就可以进行各种操作了。

php链接数据库

标签:连接数   username   throw   结果   mysql操作   传统   数据库连接   异常   ==

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/jiqing9006/p/12145641.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值