[英]PHP ezSQL and two connections to different hosts
我正在嘗試在不同的數據庫之間復制一些數據。 為了進行測試,我僅在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%正確的..如果我僅使用一個連接,則一切正常,沒有任何問題!
我仍然不知道為什么會出現此錯誤。 切換到PDO,沒有問題。
此解決方案適用於3.08版本。
問題是由連接功能引起的。 函數從constract獲取數據庫名稱。 如果第一次確定變量,則第二次或更長時間將不起作用。
拳頭 請打開/ lib文件夾
根據您的數據庫選擇文件(等ez_sql_mysqli.php)
查找功能connect(....
將其公共功能connect($ dbuser ='',$ dbpassword ='',$ dbhost ='localhost',$ charset ='')更改為公共功能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 )
它會工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.