Ich mache ein Tutorial und erhalte folgende Fehlermeldung:
Schwerwiegender Fehler: Klasse 'MySQLi' in Zeile 8 nicht gefunden (LANGE URL)
Der Code in Zeile 8 lautet:
$mysqli = new MySQLi($db_server, $db_user, $db_pass, $db_name);
Ich habe online gesehen, dass jemand gesagt hat, ob es in meiner phpinfo () aktiviert ist, aber dort ist unter "mysqli" nichts aufgeführt.
Außerdem verwende ich PHP Version 5.2.5
Antworten:
Klingt so, als müssten Sie nur MySQLi installieren .
Wenn Sie der Meinung sind, dass Sie dies getan haben und immer noch ein Problem haben, veröffentlichen Sie bitte Ihr Betriebssystem und alles andere, was zur weiteren Diagnose beitragen könnte.
quelle
sudo yum install php-mysqli
sudo yum install php56-mysqlnd.x86_64
(wählen Sie diejenige aus, die zu der von Ihnen installierten PHP-Version passt)Sie können überprüfen, ob die mysqli-Bibliotheken vorhanden sind, indem Sie diesen Code ausführen:
quelle
Wenn Sie unter Ubuntu sind , führen Sie Folgendes aus:
quelle
sudo
apt-get -y install php5-mysql php5-mysqlnd
, um beide zu erhalten. Haben Sie es vermisst, @Hermann Ingjaldsson?Wenn Sie "new mysqli (..)" aus einer Klasse mit Namespace heraus aufrufen, wird möglicherweise ein ähnlicher Fehler angezeigt
Fatal error: Class 'foo\bar\mysqli' not found in
. Die Möglichkeit, dies zu beheben, besteht darin, es explizit auf den Root-Namespace mit einem vorhergehenden Backslash wie folgt festzulegen:quelle
Neben uncommenting die php_mysqli.dll Erweiterung in der php.ini , auch Kommentar- der extension_dir Direktive in php.ini und geben Sie Ihren Standort:
Das hat es für mich funktionieren lassen.
quelle
./ext
welchem ist der relative Weg. Und ich hatte umbenennenphp.ini-development
zuphp.ini
und uncomment in dieser Dateiextension=php_mysqli.dll
. Oh Mann, ich habe dich nicht vermisst PHP.Mein Betriebssystem ist Ubuntu . Ich habe dieses Problem gelöst mit:
quelle
So aktivieren Sie mysqli in der php.ini
So laden Sie die Datei php.ini
quelle
Wenn Sie auf Docker sind ...
Im PHP-Container RUN:
quelle
Scheint ein Problem mit Ihrer Installation zu sein.
http://www.php.net/manual/en/mysqli.installation.php
quelle
Ich dachte, ich könnte jedem mit dem gleichen Problem bei der Verwendung von Namesco-Servern helfen. Ich habe versucht, dieses Problem zu beheben, nachdem ich eine Datenbank von meinem lokalen Server auf dem Heim-PC auf Namesco verschoben habe. Sie würden nicht helfen, sie sagten, es sei ein Codierungsproblem.
Leider waren ihre Support-Artikel Zeitverschwendung. Nachdem ich dies gelesen hatte, ging ich mit einer neuen Entschlossenheit zur Admin-Oberfläche.
quelle
Einige Distributionen (wie Gentoo ) unterstützen mehrere Installationen von PHP, und Sie müssen sicherstellen, dass Sie eine mit installiertem und aktiviertem mysqli verwenden.
Auf Gentoo hatte ich ein neues PHP installiert (mit aktiviertem mysqli USE-Flag), aber ich musste die neue Version von PHP aktivieren (da das alte mysqli fehlen muss):
quelle
Ich habe alles oben überprüft und es hat bei mir nicht funktioniert.
Ich habe einige Schritte gefunden.
Ich habe PHP Version 5.5.9-1ubuntu4.17 unter Ubuntu 14.04 verwendet
Überprüfen Sie zuerst den Ordner
Wenn es mysqli.ini nicht enthielt , lesen Sie die andere Antwort für die Installation.
Öffnen Sie
php.ini
find extension_dirIn meinem Fall muss ich einstellen
extension_dir = /usr/lib/php5/20121212
Und starte apache2 neu:
/ect/init.d/apache2 restart
quelle
Die PHP-Zip-Datei enthält die meisten häufig verwendeten Erweiterungen (* .dll unter Windows wie php_mysqli.dll) im Verzeichnis \ ext, ist jedoch standardmäßig nicht aktiviert. Möglicherweise wird dieser schwerwiegende Fehler angezeigt, wenn Sie versuchen, MySQLi zu verwenden:
Um Erweiterungen zu aktivieren, öffnen Sie php.ini (möglicherweise müssen Sie zuerst php.ini-development als php.ini kopieren) und entfernen Sie den Kommentar (oder fügen Sie diese beiden Zeilen hinzu):
Und für bestimmte Erweiterungen, für die Sie schwerwiegende Fehler erhalten, z. B. für mysqli:
quelle
auf Ubuntu:
quelle
Entfernen Sie bei einer Neuinstallation von PHP
;
zuvorextension_dir
in der php.ini.quelle
auf Debian 10
quelle
Für alle, die Docker verwenden, bin ich auf dieses Problem gestoßen und habe es behoben, indem ich meine eigene Docker-Datei anstelle des Bildes php: fpm verwendet habe:
quelle
Nach einem langen Analysevorgang habe ich eine Lösung für dieses Problem gefunden. Nachdem ich meine PHP-Installation mit den Kommandozeilenfunktionen richtig getestet hatte, stellte ich fest, dass die PHP gut funktioniert und mit der MySQL-Datenbank funktionieren könnte. Übrigens. Sie können Code-Dateien mit PHP-Code mit dem Befehl php -f filename.php ausführen.
Also wurde mir klar, dass mit dem Apache etwas nicht stimmt.
Ich habe eine Datei mit nur der Funktion phpinfo () erstellt.
Hier habe ich gesehen, dass in der Zeile
Loaded Configuration File
meine Konfigurationsdatei nicht geladen wurde, sondern dort erwähnt wurde (keine).
Schließlich fand ich in der Apache-Konfiguration den Eintrag
Aber ich habe PHP 7 installiert und so konnte der Apache die Datei php.ini nicht laden, da es dafür keinen Eintrag gab. Ich fügte hinzu
und nach dem Neustart von Apache funktioniert alles gut.
Diese Codeblöcke oben habe ich in meiner Datei httpd-xampp.conf gefunden. Möge es irgendwo anders in Ihrer Konfiguration sein.
In der gleichen Datei hatte ich vor den Einstellungen für das PHP 7 als Ersatz für die PHP 5-Version geändert.
Wie Sie sehen können, habe ich das xampp-Paket installiert, aber dieses Problem war nur auf der Apache-Seite.
quelle
Installieren Sie die phpXX-Erweiterung von PHP. In meinem FreeBSD-Fall:
quelle
quelle