mysqli在直接运行时起作用,但在通过js-ajax

时间:2015-07-20 18:19:51

标签: javascript php ajax mysqli

我有一个PHP脚本,可以将信息放在数据库中。 当我在服务器上手动运行脚本时,所有工作都按预期工作。 但是,当我使用ajax通过javascript运行该脚本时,php脚本在以下行失败:

$connection=new mysqli($servername,$username,$password,$dbname);

我得到的错误是 PHP致命错误:在/ var / www / html /..

中找不到类'mysqli'

对于我直接在服务器上直接运行该脚本没有任何问题,这没有任何意义。

我在/var/log/apache2/error.log中找到了这个错误。

以下是我的ajax调用的外观:

$.ajax({
    url:'db/insert.php',
    complete: function(response){
        //$('#output').html(response.responseText);
        alert('complete: '+response.responseText);
        },
    error: function(){
        //$('#output').html('Bummer: there was an error!');
        alert('error');
        },
    async:"false",
    type:"POST",
    data:{visit_report:'1'}
    });

为什么脚本会以这种方式失败?

这个问题在这里继续: Enable mysqli in my in-webserver copy of php

2 个答案:

答案 0 :(得分:1)

找到你php.ini文件,小心可能有2个。您可能想要apache / bin文件夹中的那个。

寻找

extension=php_mysqli.so

确保它前面没有#注释字符。

如果您不确定其居住地点,请尝试whereis php.ini

答案 1 :(得分:0)

我有时会遇到同样的问题。

问题在于,当您通过ajax调用页面时,所有服务器端包含和需求都已死亡。您必须显式调用您的数据库连接,并确保在您通过ajax调用的页面上包含所有页面,以便在该调用中创建它们。