怎么样配置thinkphp 与本地mysql和sql server同时连接俩个数据库

怎么样配置thinkphp 与本地mysql和sql server同时连接俩个数据库,第1张

thinkphp 同时连接两个数据库的配置方法如下:
1、在Dbclassphp脚本文件里面的类增加一个魔术方法__get(),写法如下:
public function __get($propertyName)
{ return $this->$propertyName;
}
这个方法是用来访问类中protected $config成员属性用的。有的人可能会说,直接把protected改成public岂不是更好。这样只解决了基类的问题,假如,子类也同样进行了受保护,那要你更改更多的文件,这是我们做IT程序员非常不愿意看到的事情。
2、在Modelclassphp中的getTableName()方法更改如下:
$tablepre = $this->db->config['tablepre'];
if(empty($this->trueTableName)) {
$tableName= empty($tablepre) $this->tablePrefix : $tablepre;
if(!empty($this->tableName)) {
$tableName = $this->tableName;
}
else
{
$tableName = parse_name($this->name);
}
$this->trueTableName = strtolower($tableName);
}
return (!empty($this->dbName)$this->dbName'':'')$this->
trueTableName;这样就完成了多库自由切换时,导致的表前缀问题。
/面向对象PDO连接方式/
'DB_TYPE' => 'PDO', // 数据库类型
'DB_DSN' => 'mysql:host=localhost;dbname=master', // DSN连接。
'DB_USER' => 'root', // 数据库用户名
'DB_PWD' => '123456', // 数据库密码
'DB_PORT' => '3306', // 数据库端口
'DB_PREFIX' => 'g_', // 数据表前缀
'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8

第一步:客户端查找相关的Hosts文件。
客户端一开始也不知道主机名对应的IP地址是多少。故需要把这个主机名解析成对应的IP地址,如此的话,客户端才能够连接到服务器上。要解析这个主机名的话,可以通过Host文件或者DNS服务器来完成。
通常情况下,客户端是先去查询本机上的Host文件,看看有没有对应的纪录。
如果没有的话,则去寻找网络中存在的DNS服务器要求解析。
第二步:客户端联系服务器。
当客户端获得服务器的IP地址后,就会跟服务器进行联系。
客户端会把用户名与密码发送给服务器。注意此时客户端不会把服务名称告诉给服务器。因为默认情况下,服务器上只会安装一个应用服务。故客户端只要把用户名与密码告诉给服务器,数据库服务器就会允许用户连接唯一的一个应用服务。
故如果要用户连接同一台主机上的不同Oracle数据库服务,则需要数据库能够识别客户端到底需要连接哪个应用服务,也就是说,需要客户端能够把应用服务的名称也传递给服务器。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13382802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-25
下一篇 2023-07-25

发表评论

登录后才能评论

评论列表(0条)

保存