【问题标题】: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 上调用成员函数存在()
【发布时间】:2023-03-16 21:41:02
【问题描述】:

刚刚安装了 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。

标签: mysql phpmyadmin xampp


【解决方案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:

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

【讨论】:

  • 感谢您发布此消息!
  • 如果您使用的是 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】:

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

    1. 编辑DatabaseInterface.php文件
    2. 找到以下函数:postConnectControl
    3. 注释函数体(查看图片)
    4. 保存文件。
    5. 可选:从 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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-10-04
          • 2016-04-20
          • 2020-08-24
          • 1970-01-01
          • 2023-03-24
          • 1970-01-01
          • 2018-10-11
          相关资源
          最近更新 更多