Php jQueryAjax调用在服务器上给出内部服务器错误,但在本地主机上有效

Php jQueryAjax调用在服务器上给出内部服务器错误,但在本地主机上有效,php,jquery,mysql,Php,Jquery,Mysql,我刚刚得到了我的主机,我从我的本地主机服务器上传了文件,导出了本地数据库并将其上传到主机服务。然后我创建了一个具有所有允许权限的用户 问题是,当我进入网站时,执行查询的PHP文件会给出一个内部服务器错误(500) 我已使用以下代码检查了与数据库的连接和PHP版本: <?PHP $db_servername = "www.website.com"; $db_username = "user"; $db_password = "password

我刚刚得到了我的主机,我从我的本地主机服务器上传了文件,导出了本地数据库并将其上传到主机服务。然后我创建了一个具有所有允许权限的用户

问题是,当我进入网站时,执行查询的PHP文件会给出一个内部服务器错误(500)

我已使用以下代码检查了与数据库的连接和PHP版本:

<?PHP
$db_servername = "www.website.com";
$db_username = "user";
$db_password = "password";
$db_database = "db";

phpinfo();

$db = mysqli_connect($db_servername, $db_username, $db_password,$db_database);
if (!$db) {
    die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}

echo 'Connected... ' . mysqli_get_host_info($db) . "\n";
?>

这样做的结果是成功连接到数据库,并且PHP版本是最新的

以下是查询php文件中的代码:

<?php
include('db.php');
$sql = $db ->prepare('...');
$sql -> execute();
$result = $sql -> get_result();
$list = array();
while( $row = $result->fetch_assoc() ) {
    $list[] = $row;
}
$final_list = json_encode($list);
echo $final_list;
?>

查询已在服务器中进行了检查,并且运行良好。我已经对上面的代码部分进行了注释,以检查它何时会给出错误,并且当我回显$final_列表时会出现错误。其他一切都可以

这是调用查询的脚本中的代码:

$.post("load_articles.php", function(result){
if(! (result == null)){
    /* Iterate through results to populate table */
    json = result;
    for(var i in json){
        if(i % 2 == 0 && i < 5){
            columnModulus = 0;
        }else if(i < 5){
            columnModulus = 1;
        }else if(i % 2 == 0 && i >= 5){
            columnModulus = 2;
        }else if(i >= 5){
            columnModulus = 3;
        }
        myData =
        '<a href="article.php?articleId=' + json[i].aId + '">' + 
            '<div class="home-article" id="' + json[i].aId + '">' + 
            '<img style="margin: auto; display: block;" data-modulus="'+columnModulus+'" src="'+json[i].imagePath+'">'+
            '<p class="article-theme">'+json[i].theme+'</p>'+
            '<p class="article-title">' + json[i].title + '</p>' +
            '</div>'+ 
            '</a>';
        appendTo = ".home-container div[data-modulus='"+columnModulus+"']";
        $(appendTo).append(myData);
    }
    

    }else{
        myData += "<div>No comments found</div>";
    }
}, "json"); 
$.post(“load_articles.php”,函数(结果){
如果(!(结果==null)){
/*遍历结果以填充表*/
json=结果;
for(json中的var i){
如果(i%2==0&&i<5){
柱状模量=0;
}否则如果(i<5){
柱状模量=1;
}否则如果(i%2==0&&i>=5){
柱状模量=2;
}如果(i>=5),则为else{
柱状模量=3;
}
我的数据=
'';
appendTo=“.home container div[数据模数=”+列模数+”];
$(appendTo).append(myData);
}
}否则{
myData+=“未找到任何注释”;
}
}“json”);

这段代码在本地主机上运行得非常好,当然可以更改数据库连接的详细信息,但在联机服务器上不起作用。有什么想法吗?

在文件错误报告的开头加上前缀,这在生产服务器上通常是“关闭”的

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
希望,这将帮助您诊断问题。
否则,请查看日志文件以了解错误。

请检查错误日志,您将发现错误。这是否回答了您的问题?这不是对问题的有用描述。我曾经遇到过这种情况,因为我在服务器上使用的是较旧的php版本,而在本地主机上使用的是最新版本。。我不确定这是否是您的问题,但您也可以检查。我有一个致命错误,因为未定义get_result()。我必须用fetch来代替。谢谢