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

Posted

技术标签:

【中文标题】致命错误:未捕获的错误:在 C:\\xampp\\phpMyAdmin\\libraries\\classes\\DatabaseInterface.php:1544 中的 null 上调用成员函数存在()【英文标题】:Fatal error: Uncaught Error: Call to a member function exists() on null in C:\xampp\phpMyAdmin\libraries\classes\DatabaseInterface.php:1544致命错误:未捕获的错误:在 C:\xampp\phpMyAdmin\libraries\classes\DatabaseInterface.php:1544 中的 null 上调用成员函数存在() 【发布时间】:2018-10-11 19:07:54 【问题描述】:

刚刚安装了 Xampp 7.2.4,尝试在 xampp 控制面板 v3.2.2 中打开 mysql 的 ADMIN 时出现以下错误。我在另一个工作站上进行了该设置,相同的操作系统(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

【问题讨论】:

我的机器上出现同样的错误。我刚刚安装了 XAMPP 7.2.4。 【参考方案1】:

转到 xampp/phpmyadmin/libraries/classes/databaseintreface Open in sublime text go on line 1535 代码写成 ([zeroconf]==true) 将其更改为 ([zeroconf]!= true)...

【讨论】:

试过你的帖子但没有运气...同样的错误...重新启动 PhPMyAdmin 和 MySQL.. 它对我有用。我没有在 Xampp 中使用 mysql。我已经安装了 MYSQL Server 社区版。安装社区版后出现此错误。现在解决了【参考方案2】:

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

【讨论】:

试过了,它也失败了......同样的错误......还在第 1545 行将 phpmyadmin 更改为 phpMyAdmin【参考方案3】:

在 MySQL 强制关闭后,我遇到了同样的错误。

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

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

    浏览到您的 PHPMyAdmin 页面:http://localhost/phpmyadmin/ 按 F12 键打开开发者工具 在顶部菜单中,转到“应用程序”标签 在左侧菜单中,单击“清除存储”选项。 点击“清除站点数据按钮”。

【讨论】:

感谢您发布此消息! 如果您使用的是 XAMPP 或 WAMP,请按照以下步骤尝试删除 tmp 文件夹下的内容。【参考方案4】:

如果您已经创建了 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);
    //     
    // 

【讨论】:

【参考方案5】:

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

    编辑DatabaseInterface.php文件 找到以下函数:postConnectControl 注释函数体(查看图片) 保存文件。 可选:从 XAMPP 重新启动 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);
                // 
            // 
        // 
    

【讨论】:

【参考方案6】:

我认为您使用的是 android Studio IDE。这需要 PHP My Admin 作为数据库。将数据库连接到应用程序后。它会弄乱你的 PHP My Admin。尝试先关闭应用程序,然后重新启动您的 XAMPP 应用程序。希望对您有所帮助!

【讨论】:

【参考方案7】:

我已经解决了升级到最新版本的 Phpmyadmin 4.8.2

【讨论】:

以上是关于致命错误:未捕获的错误:在 C:\xampp\phpMyAdmin\libraries\classes\DatabaseInterface.php:1544 中的 null 上调用成员函数存在()的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:未捕获的错误:找不到类“App\Config”

致命错误:未捕获的错误:未找到类“用户名”

致命错误:未捕获的异常 PAYPAL

致命错误:未捕获的错误:在 null 上调用成员函数 select()

突然出现Apache错误?致命错误:未捕获错误

致命错误:未捕获的 ReflectionException:类配置不存在