Mysql PDO无效凭据导致内部服务器错误而不是捕获错误

时间:2016-01-20 17:47:56

标签: php mysql pdo internal-server-error

我比任何事情都更困惑,我试图使用PDO连接到我的mysql数据库。我的凭据无效,而不是我尝试抓住错误并告诉我“凭据无效”#39;它完全冻结了页面,我收到了这个错误:

  

内部服务器错误

     

服务器遇到内部错误或配置错误,无法完成您的请求。

     

请与服务器管理员联系,告知错误发生的时间以及可能导致错误的任何操作。

     

服务器错误日志中可能提供了有关此错误的更多信息。

我的代码如下:

function pdo_connect(){
    $host           = 'localhost';
    $user           = 'user';
    $pass           = 'wrongpass';
    $dbSchema       = 'wrongschema';
    try{
        $dbcPDO = new PDO('mysql:host='.$host.';dbname='.$dbSchema, $user, $pass); //connect to the PDO instance
        $dbcPDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //turn on errors
        return $dbcPDO;
    }catch(PDOException $e) {
        trigger_error('Could not connect to the database: ' . $e->getMessage());
        return false;
        exit();
    }
}

当我有正确的凭据时,我连接没有问题。我认为PDOException会捕获无效凭证,并且消息说明它无法连接。

1 个答案:

答案 0 :(得分:0)

仅供参考,当我们对数据库使用无效凭据时,PDO将捕获异常。不确定是什么给了你这个问题。

  1. 您在函数中编写了连接数据库的PDO。确保在PHP脚本中调用该函数。

  2. 您可以使用以下代码检查PDO与数据库的连接是否成功。

    if($con==null)
    {
     $response["connected"] = "false";
    }else{
     $response["connected"] = "true";
    }
    echo json_encode($response);     // $con is the connection object returned.
    
  3. 您在上面使用的代码在我的服务器中正常工作。问题可能出在服务器本身。请尝试查看错误日志更多详细信息。

  4. Link将指导您了解内部服务器错误。可能您可以发布错误日志以快速解决问题。

    祝你好运.. !!