使用phpmyadmin导入数据库后出错:未定义属性:PDO :: $ connect_error

时间:2018-03-04 19:57:46

标签: php mysql pdo phpmyadmin

  1. 我使用scp将我的脚本从远程服务器复制到我的localhost。
  2. 然后我使用phpmyadmin中的导出和导入功能将数据库复制到我的localhost。
  3. 在我的localhost中输入网站时,我得到完全相同的输出,但在include之后的行上有错误消息(' config.php') - > "未定义的属性:PDO :: $ connect_error"
  4. 我更改了localhost config.php文件中的用户名和密码,因为我在本地phpmyadmin上使用了不同的登录信息。 除此之外,它们是完全相同的文件。

    我的config.php文件:

    <?php
    $dbh = new PDO(
                    'mysql:host=localhost;dbname=mydatabase;charset=utf8',
                    'root',
                    'pw123',
                    array(
                            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                            PDO::ATTR_PERSISTENT => false
                    )
            );
    
    ?>
    

    有人可以解释可能导致错误消息的原因吗?

    这对我有用:

    我在index.php中的第一行:

    // Check connection
    if ($dbh->connect_error) {
        die("Connection failed: " . $dbh->connect_error);
    }
    include('header.php');
    

    我的header.php中的前两行:

    error_reporting( error_reporting() & ~E_NOTICE );
    ini_set('display_errors', true);
    

    解决方案: 当我将这两行复制到index.php脚本中时,错误消息消失了。 如果有人知道原因,请向我们解释。

1 个答案:

答案 0 :(得分:1)

  

未定义的属性:PDO :: $ connect_error

如果您查看manual,则会发现PDO实例根本没有公共属性。与mysqli不同,PDO将始终为连接错误抛出异常。

tl; dr - 完全删除该条件并且不要隐藏错误消息