2013-10-24 204 views
4

我試圖連接到遠程服務器。我認爲問題出在端口號上,但是當我嘗試錯誤報告時,我沒有收到任何信息。mysqli_connect到遠程服務器

$db_host  = 'MY.IP.ADD.RESS:3306'; 
$db_user  = 'user'; 
$db_pass  = 'password'; 
$db_database = 'database'; 

$link = mysqli_connect($db_host,$db_user,$db_pass,$db_database) or die('Unable to establish a NHT_DB connection'); 


if (!$link) { 
    die('Connect Error: ' . mysqli_connect_error()); 
} 
else { 
    echo 'Success... ' . mysqli_get_host_info($link) . "\n"; 
} 

首先,我並不是100%確信這是正確的端口。我如何知道mysql被設置爲使用哪個端口?

其次,mysqli_connect_error()不給我任何東西。沒有數字,代碼,什麼都沒有。測試頁面只是向後退出Connect Error:,儘可能多的代碼我可以去查找。

+1

您與服務器管理員交談並找出或登錄到服務器並查看my.ini/my.cnf文件以查看它是什麼。如果連接失敗,你還會得到一個'或die()'將會終止腳本,這樣一旦失敗,mysqli_connect_error代碼將不會被觸發。 –

+0

拿出''或死()',仍然沒有得到任何東西。 – Plummer

回答

7

解決方法是將一個端口參數添加到mysqli_connect函數。

$db_host  = 'MY.IP.ADD.RESS'; 
$db_user  = 'user'; 
$db_pass  = 'password'; 
$db_database = 'database'; 
$db_port  = '3306'; 

$link = mysqli_connect($db_host,$db_user,$db_pass,$db_database,$db_port);