2014-11-24 82 views
-2

我試圖下載一個csv文件從數據庫獲取內容,但我想從數據庫中獲取它的名稱以及從一個表(文件名)與單個字段(名稱)。

這裏是我的代碼:

// Connecting to Database 

$mysqli = new mysqli('servername.ipagemysql.com', 'username', 'pass', 'reportconverter'); 
$filename = array_values(mysqli_fetch_array($mysqli->query("SELECT name FROM filename")))[0]; 

//Downloading the file 

header('Content-type: application/csv'); 
header('Content-Disposition: attachment; filename='.$filename); 

echo $output; 

exit; 

我得到以下錯誤:

內部服務器錯誤 服務器遇到一個內部錯誤或配置錯誤,無法完成您的請求。

服務器名稱,用戶名,密碼和數據庫名稱都是準確的,因爲它們在其他頁面上工作。該代碼也適用於本地主機。但如果我把服務器登錄細節放在本地主機文件中,我得到這個錯誤:

Warning: mysqli_connect(): (HY000/2002): No connection could be made because the target machine actively refused it. 

任何想法?或者我應該問我的託管服務人員尋求幫助?

+2

'但是,如果我把服務器的登錄信息在本地主機文件,我得到這個錯誤'這意味着你的mysql主機權限不允許遠程mysql連接。正確設置這些權限將解決 – 2014-11-24 09:59:30

+0

'500'錯誤意味着* webserver *沒有權限執行任何操作,類似於'403'。 – cybermonkey 2014-11-24 10:01:54

+0

如果你的服務器拒絕連接,這意味着服務器上運行的mysql服務有問題,它不是你的錯 – DLastCodeBender 2014-11-24 10:55:14

回答

1

最後我解決了這個問題。這是[0]造成問題,因爲我的服務器上的PHP版本不支持這種說法,所以我不得不改變這樣的:

$filename = array_values(mysqli_fetch_array($mysqli->query("SELECT name FROM filename"))); 
$filename = $filename[0]; 
+0

謝謝 - 爲我節省了很多時間:) ... – 2015-07-23 15:12:33

相關問題