it-swarm.com.de

Schwerwiegender Fehler: Nicht abgerufener Fehler: Der Aufruf einer Memberfunktion ist unter null in C:\xampp\phpMyAdmin\libraries\classes\DatabaseInterface.php: 1544 vorhanden

Ich habe gerade Xampp 7.2.4 installiert und erhalte die folgende Fehlermeldung beim Versuch, das ADMIN für MySQL in der xampp-Systemsteuerung v3.2.2 zu öffnen. Ich hatte dieses Setup auf einer anderen Arbeitsstation, dem gleichen Betriebssystem (Windows Server 2012 R2), der gleichen Version von xampp, aber der Fehler, den ich bekomme, macht mir keinen Sinn ... aber trotzdem? Vergleichen Sie bereits beide install und sie sehen ähnlich aus.

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
2

Ich hatte gerade den gleichen Fehler, nachdem MySQL heruntergefahren war. 

Nachdem der Fehler im Code aufgespürt wurde, stellte sich heraus, dass der Browser-Cookie beschädigt war. PHPMyAdmin konnte die Datenbankliste nicht abrufen.

In Google Chrome können Sie die Cookies löschen, indem Sie:

  1. Navigieren Sie zu Ihrer PHPMyAdmin-Seite: http: // localhost/phpmyadmin/
  2. Drücken Sie die Taste F12, um die Entwicklerwerkzeuge zu öffnen
  3. Gehen Sie im Hauptmenü zur Registerkarte "application"
  4. Klicken Sie im linken Menü auf die Option "clear storage".
  5. Klicken Sie auf die Schaltfläche "Site-Daten löschen".

 Flush cookie with Chrome developer tools

Gehen Sie zu xampp/phpmyadmin/libraries/classes/databaseintreface Öffnen Sie in sublime Text. Gehen Sie in Zeile 1535 weiter. Der Code wird als .__ geschrieben. ([Zeroconf] == true). ..

2
Hemant

Ändern Sie in der Zeile 1544 "if ($ GLOBALS ['dblist'] -> Datenbanken-> existiert ('phpmyadmin'))" "phpMyAdmin")) ".

1
beto33

Diese Antwort verbessert die vorherigen Antworten:

  1. Bearbeiten Sie die Datei DatabaseInterface.php
  2. Suchen Sie die folgende Funktion: postConnectControl
  3. Kommentieren Sie den Körper der Funktion (Bild anzeigen)
  4. Speicher die Datei.
  5. Optional: Starten Sie den Apache HTTP-Webserver überXAMPPneu.

Die Funktion muss der folgenden ähneln:

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);
                // }
            // }
        // }
    }

</ pre> </ code>

0
Ieshua

Ich denke, Sie verwenden eine Android Studio IDE. Welche benötigt PHP My Admin als Datenbank. Sobald Sie Ihre Datenbank mit Ihrer Anwendung verbinden. Es wird Ihr PHP My Admin durcheinander bringen. Schließen Sie zunächst die Anwendung, und starten Sie dann Ihre XAMPP-Anwendung neu. Ich hoffe es hilft!

0
Anthony

Sie können die Zeilen 1543 bis 1547 sicher kommentieren, wenn Sie bereits die phpmyadmin-Datenbank erstellt haben, was bei XAMPP der Fall ist, und es würde gut funktionieren.

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);
    //     }
    // }
}
0
josemmo