0

異なるデータベース間でいくつかのデータをコピーしようとしています。テストでは、ローカルホスト上で2つのデータベースを使用しただけで、すべてが正常に機能しましたが、2つの異なるホストへの接続を確立しようとすると、機能しなくなりました。私のコードは次のようになります。

$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

異なるホストへの2つの接続を妨げる、私が気付いていない問題はありますか?

ところで。接続情報は100%正しいです。1つの接続のみを使用すると、すべてが問題なく機能します。

4

2 に答える 2

0

なぜこのエラーが発生したのかはまだわかりません。PDOに切り替えても問題ありません。

于 2013-02-20T13:05:41.587 に答える
0

このソリューションは3.08バージョン用です。

この問題は、接続機能が原因で発生します。関数は、constractからデータベース名を取得します。変数が最初に決定された場合、2回目以降は機能しません。

拳で; /libフォルダを開いてください

  • データベースに応じてファイルを選択します(などez_sql_mysqli.php)

  • 関数connect(...を検索します。

  • public function connect($ dbuser =''、$ dbpassword =''、$ dbhost ='localhost'、$ charset ='')をpublic function connect($ dbuser =''、$ dbpassword =''、$ dbhost ='localhost'、$ charset =''、$ dbname =''

  • 関数内で$this->_ dbnameを見つけます(接続)。$dbnameに変更します。($dbnameの前に"if($ dbname ==""){$ dbname = $ this-> _ dbname;}"を付けることができます)

  • クラス内でquick_connectを見つけます。$ this-> connect($ dbuser、$ dbpassword、$ dbhost、true)を$ this-> connect($ dbuser、$ dbpassword、$ dbhost、true、$ dname)に変更します

  • それが動作します。

于 2018-09-13T08:32:56.120 に答える