首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP ezSQL和两个到不同主机的连接

PHP ezSQL和两个到不同主机的连接
EN

Stack Overflow用户
提问于 2013-02-18 23:48:14
回答 2查看 895关注 0票数 0

我正在尝试在不同的数据库之间复制一些数据。为了测试,我使用了两个数据库,都在本地主机上,一切正常,但是一旦我尝试建立到两个不同主机的连接,它就不再工作了。我的代码如下所示:

代码语言:javascript
复制
$sourceDb = new ezSQL_mysql($settings['dbuser'], $settings['dbpass'], $settings['dbname'], $settings['dbhost']);

$targetDb = new ezSQL_mysql($settings['syncdbuser'], $settings['syncdbpass'], $settings['syncdbname'], $settings['syncdbhost']);

错误消息如下:

代码语言:javascript
复制
Warning: Error establishing mySQL database connection.
Correct user/password? Correct hostname?
Database server running? in ez_sql_mysql.php on line 89
PHP Warning:  mySQL database connection is not active
 in ez_sql_mysql.php on line 121

有没有什么我不知道的问题,阻止两个连接到不同的主机?

顺便说一句。连接信息100%正确。如果我只使用一个连接,一切都可以正常工作,没有任何问题!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-20 21:05:42

我仍然不知道为什么会出现这个错误。已切换到PDO,没有任何问题。

票数 0
EN

Stack Overflow用户

发布于 2018-09-13 16:32:56

此解决方案适用于3.08版本。

问题是由connect函数引起的。该函数从结构中获取数据库名称。如果变量是第一次确定的,第二次或更多时间将不起作用。

请打开/lib文件夹

  • 根据您的数据库选择文件(等。ez_sql_mysqli.php )
  • find function connect( ....
  • 更改其公共函数connect($dbuser='',$dbpassword='',$dbhost='localhost',$charset='')到public function connect($dbuser='',$dbpassword='',$dbhost='localhost',$charset='',charset $this->_dbname inside function (connect) )。将其更改为$dbname。(您可以将“if($dbname==""){ $dbname=$this->_dbname;}”放在$dbname之前)
  • 在类中查找quick_connect;将$this->connect($dbuser,$dbpassword,$dbhost,true)改为$this->connect($dbuser,$dbpassword,$dbhost,true,true)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14940072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档