致命错误:未捕获错误:在C:\ xampp \ phpMyAdmin \ libraries \ classes \ DatabaseInterface.php中调用成员函数exists()为null:1544

时间:2018-05-01 18:17:40

标签: mysql phpmyadmin xampp

刚刚安装了Xampp 7.2.4,我在xampp控制面板v3.2.2中尝试打开ADMIN for MySQL时出现以下错误。我在另一个工作站,相同的操作系统(Windows Server 2012 R2)相同版本的xampp上进行了设置,但是我得到的错误对我没有任何意义......但是?已经比较了安装和它们看起来相似。

Fatal error: Uncaught Error: Call to a member function exists() on null in C:\xampp\phpMyAdmin\libraries\classes\DatabaseInterface.php:1544 Stack trace: 
#0 C:\xampp\phpMyAdmin\libraries\classes\DatabaseInterface.php(2477): PhpMyAdmin\DatabaseInterface->postConnectControl() 
#1 C:\xampp\phpMyAdmin\libraries\common.inc.php(358): PhpMyAdmin\DatabaseInterface->connect(257) 
#2 C:\xampp\phpMyAdmin\index.php(26): require_once('C:\\xampp\\phpMyA...') 
#3 {main} thrown in C:\xampp\phpMyAdmin\libraries\classes\DatabaseInterface.php on line 1544

7 个答案:

答案 0 :(得分:17)

在暴力破解MySQL关闭后我遇到了同样的错误。

在跟踪代码中的错误后,结果发现浏览器cookie已损坏,导致PHPMyAdmin无法获取数据库列表。

在Google Chrome中,您可以通过以下方式刷新Cookie:

  1. 浏览到您的PHPMyAdmin页面:http://localhost/phpmyadmin/
  2. 按F12键打开开发人员工具
  3. 在顶部菜单中,转到“应用程序”标签
  4. 在左侧菜单中,点击“清除存储空间”选项。
  5. 点击“清除网站数据按钮”。
  6. Flush cookie with Chrome developer tools

答案 1 :(得分:2)

转到xampp / phpmyadmin / libraries / classes / databaseintreface 在sublime文本中打开第1535行,代码写为 ([zeroconf] == true)将其更改为([zeroconf]!= true)...

答案 2 :(得分:1)

在第1544行,更改“if($ GLOBALS ['dblist'] - > databases-> exists('phpmyadmin'))” for“if($ GLOBALS ['dblist'] - > databases-> exists('phpMyAdmin'))”。

答案 3 :(得分:0)

如果您已经创建了phpmyadmin数据库,那么您可以安全地评论第1543至1547行,这是XAMPP的情况,并且它可以正常工作。

if ($GLOBALS['cfg']['ZeroConf'] == true) {
    if (strlen($GLOBALS['db'])) {
        $cfgRelation = $this->relation->getRelationsParam();
        if (empty($cfgRelation['db'])) {
            $this->relation->fixPmaTables($GLOBALS['db'], false);
        }
    }
    $cfgRelation = $this->relation->getRelationsParam();
    // if (empty($cfgRelation['db'])) {
    //     if ($GLOBALS['dblist']->databases->exists('phpmyadmin')) {
    //         $this->relation->fixPmaTables('phpmyadmin', false);
    //     }
    // }
}

答案 4 :(得分:0)

这个答案增强了以前的答案:

  1. 编辑 DatabaseInterface.php 文件
  2. 找到以下功能: postConnectControl
  3. 评论功能正文(查看图像)
  4. 保存文件。
  5. 可选:从 XAMPP
  6. 重新启动Apache HTTP Web服务器

    该功能必须与此类似:

    public function postConnectControl()
        {
            // If Zero configuration mode enabled, check PMA tables in current db.
            // if ($GLOBALS['cfg']['ZeroConf'] == true) {
                // if (strlen($GLOBALS['db'])) {
                    // $cfgRelation = $this->relation->getRelationsParam();
                    // if (empty($cfgRelation['db'])) {
                        // $this->relation->fixPmaTables($GLOBALS['db'], false);
                    // }
                // }
                // $cfgRelation = $this->relation->getRelationsParam();
                // if (empty($cfgRelation['db'])) {
                    // if ($GLOBALS['dblist']->databases->exists('phpmyadmin')) {
                        // $this->relation->fixPmaTables('phpmyadmin', false);
                    // }
                // }
            // }
        }
    

答案 5 :(得分:0)

我认为您正在使用Android Studio IDE。哪个需要PHP My Admin作为数据库。将数据库连接到应用程序后。它将使您的PHP My Admin混乱。尝试先关闭应用程序,然后重新启动XAMPP应用程序。希望对您有帮助!

答案 6 :(得分:0)

我解决了升级到Phpmyadmin 4.8.2的最新版本的问题