Heim  >  Artikel  >  Backend-Entwicklung  >  Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Methode mysqli::stmt_init()

Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Methode mysqli::stmt_init()

王林
王林Original
2023-06-22 15:33:171610Durchsuche

Bei der Verwendung von PHP für MySQL-Datenbankoperationen tritt häufig der Fehler „Schwerwiegender PHP-Fehler: Aufruf der undefinierten Methode mysqli::stmt_init()“ auf. Dieser Fehler wird normalerweise dadurch verursacht, dass PHP die MySQL-Erweiterungsbibliothek oder die MySQL-Erweiterungsbibliothek nicht korrekt lädt . Verursacht durch Versionsinkompatibilität. In diesem Artikel erklären wir, wie Sie dieses Problem lösen können.

Schritt eins: Überprüfen Sie, ob PHP die MySQL-Erweiterungsbibliothek korrekt lädt.

In PHP können wir die aktuellen PHP-Konfigurationsinformationen über die Funktion phpinfo() anzeigen. Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein, um die aktuellen PHP-Konfigurationsinformationen anzuzeigen:

php -r "phpinfo();"

Nach der Ausführung dieses Befehls werden die PHP-Konfigurationsinformationen ausgegeben. Wir müssen bestätigen, ob die MySQL-Erweiterungsbibliothek geladen wurde.

Sie können mit Strg + F nach mysqli suchen. Wenn es nicht gefunden wird, bedeutet dies, dass die MySQL-Erweiterungsbibliothek nicht geladen ist und Sie zuerst die MySQL-Erweiterungsbibliothek installieren müssen.

Schritt 2: Installieren Sie die MySQL-Erweiterungsbibliothek

Je nach Ihrer tatsächlichen Situation können Sie die MySQL-Erweiterungsbibliothek auf die folgenden zwei Arten installieren:

Methode 1: Verwenden Sie die Befehlszeile, um die MySQL-Erweiterungsbibliothek zu installieren

Ubuntu/ Debian-System

sudo apt-get update
sudo apt-get install php-mysql

CentOS/RHEL-System

sudo yum update
sudo yum install php-mysql

Methode 2: Die MySQLi-Erweiterung manuell kompilieren und installieren

Wenn der obige Befehl nicht ausgeführt werden kann, können Sie die Erweiterung manuell kompilieren und installieren. Nehmen Sie das Ubuntu-System als Beispiel:

sudo apt-get update
sudo apt-get install php7.2-dev libmysqlclient-dev
sudo pecl channel-update pecl.php.net
sudo pecl install mysqlnd_ms

Beachten Sie, dass php7.2-dev im obigen Befehl auf die aktuell verwendete PHP-Version geändert werden muss. Wenn es nicht installiert ist, wird es nicht installiert erfolgreich kompiliert.

Nachdem die Installation abgeschlossen ist, müssen Sie die folgenden Konfigurationsinformationen in php.ini hinzufügen:

extension=mysqlnd_ms.so

Schritt 3: Starten Sie den Apache-Dienst neu.

Nach der Installation der MySQL-Erweiterungsbibliothek müssen Sie den Apache-Dienst neu starten, um ihn zu erstellen wirksam werden:

Ubuntu/Debian-System

sudo /etc/init.d/apache2 restart

CentOS/RHEL-System

sudo systemctl restart httpd

Nach Abschluss der oben genannten drei Schritte führen Sie das Programm erneut aus und Sie können sich für den Betrieb normal mit der MySQL-Datenbank verbinden.

Zusammenfassung:

Bei der Verwendung von PHP für MySQL-Datenbankoperationen kann es leicht zu dem Fehler „Schwerwiegender PHP-Fehler: Aufruf der undefinierten Methode mysqli::stmt_init()“ kommen. Dieser Fehler wird normalerweise dadurch verursacht, dass PHP die MySQL-Erweiterung nicht lädt Oder die Version der MySQL-Erweiterungsbibliothek ist nicht kompatibel. Um dieses Problem zu beheben, können wir überprüfen, ob die MySQL-Erweiterungsbibliothek korrekt geladen wurde, indem wir die von der Funktion phpinfo() zurückgegebenen Informationen überprüfen. Wenn sie nicht korrekt geladen wird, müssen Sie die MySQL-Erweiterungsbibliothek über die Befehlszeile oder manuell installieren Kompilieren und installieren Sie es. Nach Abschluss der Installation müssen Sie den Apache-Dienst neu starten, damit er wirksam wird.

Das obige ist der detaillierte Inhalt vonLösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Methode mysqli::stmt_init(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn