0

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

$sourceDb = new ezSQL_mysql($settings['dbuser'], $settings['dbpass'], $settings['dbname'], $settings['dbhost']);

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

错误信息是这样的:

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% 正确的。如果我只使用一个连接,一切正常,没有任何问题!

4

2 回答 2

0

I still don't know why I got this error. Switched to PDO and have no problems..

于 2013-02-20T13:05:41.587 回答
0

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

问题是由连接功能引起的。函数从合约中获取数据库名称。如果变量是第一次确定的,它不会在第二次或更长时间内起作用。

拳头; 请打开 /lib 文件夹

  • 根据您的数据库选择文件(等 ez_sql_mysqli.php )

  • 查找函数连接( ....

  • 将 public function connect($dbuser='', $dbpassword='', $dbhost='localhost', $charset='') 更改为 public function connect($dbuser='', $dbpassword='', $dbhost ='localhost', $charset='', $dbname='' )

  • 在函数(连接)中找到 $this->_dbname。将其更改为 $dbname。(您可以将“ if($dbname==""){ $dbname=$this->_dbname; } " 放在 $dbname 之前)

  • 在课堂上找到 quick_connect;将 $this->connect($dbuser, $dbpassword, $dbhost, true) 更改为 $this->connect($dbuser, $dbpassword, $dbhost, true, $dname )

  • 它会起作用的。

于 2018-09-13T08:32:56.120 回答