Php Codeigniter从facebook登录重定向时显示数据库错误

Php Codeigniter从facebook登录重定向时显示数据库错误,php,database,codeigniter,facebook-graph-api,Php,Database,Codeigniter,Facebook Graph Api,我正在尝试创建facebook登录 我网站上的登录按钮将我重定向到facebook,要登录,请请求允许我的应用程序获得所需的权限(“脱机访问、电子邮件等”) 当用户允许时,它返回到我的内部页面(用户页面)。如果用户的facebook id不在我的数据库中,也可以将用户数据添加到我的数据库中 但它并不是每次都能工作(无论用户是否在数据库中)。有时会出现以下错误: A Database Error Occurred Unable to connect to your database server

我正在尝试创建facebook登录

我网站上的登录按钮将我重定向到facebook,要登录,请请求允许我的应用程序获得所需的权限(“脱机访问、电子邮件等”)

当用户允许时,它返回到我的内部页面(用户页面)。如果用户的facebook id不在我的数据库中,也可以将用户数据添加到我的数据库中

但它并不是每次都能工作(无论用户是否在数据库中)。有时会出现以下错误:

A Database Error Occurred

Unable to connect to your database server using the provided settings.

Filename: core/Loader.php

Line Number: 346
这是我的登录函数,它生成fb登录url

$this->load->library('facebook');
        $user = $this->facebook->getUser();
        $data['loginUrl']="";
        $data['logoutUrl']="";
        if ($user) {
            try {
                $data['user_profile'] = $this->facebook->api('/me');
            } catch (FacebookApiException $e) {
                error_log($e);
                $user = null;
            }
        }
        if ($user) {
            $data['logoutUrl'] = $this->facebook->getLogoutUrl(array(
                'next' => ASITEURL . '/login/logout'));
        } else {
            $param['redirect_uri'] = ASITEURL . '/login/checkLogInfo';
            $param['scope'] = 'email,publish_stream,user_birthday';
            $data['loginUrl'] = $this->facebook->getLoginUrl($param);
        }
        $this->load->view('login/login', $data);
checkLogInfo是处理会话和数据库代码的函数

成功登录(并首次授予权限)后,Fb将我重定向到以下url:

数据库设置:

    $db['default']['hostname'] = 'localhost';
    $db['default']['username'] = 'root';
    $db['default']['password'] = '';
    $active_group = 'default';
    $active_record = TRUE;

$db['default']['database'] = 'mydb';
    $db['default']['dbdriver'] = 'mysql';
    $db['default']['dbprefix'] = '';
    $db['default']['pconnect'] = FALSE;
    $db['default']['db_debug'] = TRUE;
    $db['default']['cache_on'] = FALSE;
    $db['default']['cachedir'] = '';
    $db['default']['char_set'] = 'utf8';
    $db['default']['dbcollat'] = 'utf8_general_ci';
    $db['default']['swap_pre'] = '';
    $db['default']['autoinit'] = TRUE;
    $db['default']['stricton'] = FALSE;

谢谢

我解决了这个问题。应用程序的数据库设置动态加载取决于URL(如果URL包含“QA”,则更改主机名)。因此,每当facebook将我重定向到包含QA(作为问题中的给定url)的url时,它都会向我显示错误


谢谢itachi和Rick Calder。

问题在于您的数据库设置。检查这些。数据库设置正常,因为它有时会工作。我认为问题在于url(fb重定向url)。但我没有得到确切的问题。url不能导致数据库连接错误。您使用的是什么驱动程序?您是否有多个连接?没有mysql数据库($db['default']['dbdriver']='mysql';)请编辑您的问题并提供数据库设置。没有mysql意味着什么?
    $db['default']['hostname'] = 'localhost';
    $db['default']['username'] = 'root';
    $db['default']['password'] = '';
    $active_group = 'default';
    $active_record = TRUE;

$db['default']['database'] = 'mydb';
    $db['default']['dbdriver'] = 'mysql';
    $db['default']['dbprefix'] = '';
    $db['default']['pconnect'] = FALSE;
    $db['default']['db_debug'] = TRUE;
    $db['default']['cache_on'] = FALSE;
    $db['default']['cachedir'] = '';
    $db['default']['char_set'] = 'utf8';
    $db['default']['dbcollat'] = 'utf8_general_ci';
    $db['default']['swap_pre'] = '';
    $db['default']['autoinit'] = TRUE;
    $db['default']['stricton'] = FALSE;