500内部服务器错误,但在本地主机上正常工作 - $ mysqli = new mysqli
问题描述:
我试图下载一个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.
任何想法?或者我应该问我的托管服务人员寻求帮助?
答
最后我解决了这个问题。这是[0]造成问题,因为我的服务器上的PHP版本不支持这种说法,所以我不得不改变这样的:
$filename = array_values(mysqli_fetch_array($mysqli->query("SELECT name FROM filename")));
$filename = $filename[0];
+0
谢谢 - 为我节省了很多时间:) ... – 2015-07-23 15:12:33
'但是,如果我把服务器的登录信息在本地主机文件,我得到这个错误'这意味着你的mysql主机权限不允许远程mysql连接。正确设置这些权限将解决 – 2014-11-24 09:59:30
'500'错误意味着* webserver *没有权限执行任何操作,类似于'403'。 – cybermonkey 2014-11-24 10:01:54
如果你的服务器拒绝连接,这意味着服务器上运行的mysql服务有问题,它不是你的错 – DLastCodeBender 2014-11-24 10:55:14