Beginnend mit PHP 5.0 ist die Unterstützung für MySQL in den Standarddistributionen nicht mehr automatisch aktiviert. Das bedeutet, dass PHP explizit so konfiguriert werden muss, dass es die MySQL-Erweiterungen nutzen kann.
Die meisten Unixdistributionen enthalten Binärversionen von PHP, die installiert werden können. Obwohl diese Binärversionen typischerweise mit aktivierter Unterstützung für die MySQL-Erweiterungen gebaut sind, müssen die Bibliotheken selbst als zusätzliches Paket installiert werden. Prüfen Sie mit dem Paketmanager Ihrer gewählten Distribution, ob entsprechende Pakete verfügbar sind.
Falls Ihre Unixdistribution kein Binärpaket von PHP mit einer verfügbaren mysqli-Erweiterung enthält, müssen Sie PHP aus dem Sourcecode neu bauen. Dies erlaubt es Ihnen anzugeben, welche MySQL-Erweiterungen Sie verwenden wollen, und auch, welche Client-Bibliothek Sie für die jeweilige Erweiterung nutzen möchten.
Um die mysqli-Erweiterung für PHP zu aktivieren, müssen Sie den PHP-Sourcecode so konfigurieren, dass er mysqli verwendet. Dies erreichen Sie, indem Sie das configure-Skript mit der Option --with-mysqli=mysql_config_path/mysql_config aufrufen, bevor Sie den Build von PHP starten. Dadurch aktivieren Sie mysqli und verwenden die MySQL-Client-Bibliothek (libmysql), um mit dem MySQL-Server zu kommunizieren.
Hinweis:
Der mysql_config_path repräsentiert den Ort, an dem die mysql_config liegt, die mit dem MySQL-Server ausgeliefert wird.
Seit PHP-Version 5.3 können Sie alternativ den neuen MySQL-Native-Treiber zusammen mit mysqli verwenden. Sie erhalten dadurch eine Reihe von Vorteilen gegenüber der Verwendung der libmysql.
Um den MySQL-Native-Treiber mit mysqli zu verwenden, müssen Sie den PHP-Sourcecode mit --with-mysqli=mysqlnd konfigurieren, bevor Sie den PHP-Build starten.
Dies ist die empfohlene Option, da die Verwendung des MySQL-Native-Treibers zu einer verbesserten Performance führt und Zugriff auf Funktionen gewährt, die bei der Verwendung der MySQL-Client-Bibliothek nicht zur Verfügung stehen. Lesen Sie Was versteht man unter dem MySQL-Native-Treiber von PHP?, um einen kurzen Überblick über die Vorteile des MySQL-Native-Treibers zu erhalten.
Es ist möglich, MySQL-Erweiterungen und Client-Bibliotheken frei zu mischen. Zum Beispiel ist es denkbar, dass die MySQL-Erweiterung die MySQL-Client-Bibliothek (libmysql) verwendet, während die mysqli-Erweiterung so konfiguriert ist, dass sie den MySQL-Native-Treiber verwendet. Alle Kombinationen von Erweiterungen und Client-Bibliotheken sind möglich.
Das folgende Beispiel baut die MySQL-Erweiterung unter Verwendung der MySQL-Client-Bibliothek und mysqli- sowie PDO-MYSQL-Erweiterungen, die den MySQL-Native-Treiber verwenden:
./configure --with-mysql=/usr/bin/mysql_config \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd [other options]
Unter Windows wird PHP in der Regel durch den Binärinstaller installiert. Sobald PHP installiert wurde, sind einige Konfigurationseinstellungen notwendig, um mysqli zu aktivieren und die Client-Bibliothek anzugeben, die verwendet werden soll.
Wie zuvor erwähnt, ist die mysqli-Erweiterung nicht standardmäßig aktiviert, daher muss die php_mysqli.dll-DLL in der php.ini aktiviert werden. Um dies zu tun, müssen Sie die php.ini-Datei finden (typischerweise liegt diese unter c:\php) und überprüfen, dass das Kommentarzeichen (ein Semikolon) vom Anfang der Zeile extension=php_mysqli.dll in der Sektion [PHP_MYSQLI] entfernt wurde.
Wenn Sie die MySQL-Client-Bibliothek mit mysqli verwenden wollen, stellen Sie sicher, dass PHP auf die Bibliothek zugreifen kann. Die MySQL-Client-Bibliothek ist in einer Datei namens libmysql.dll der PHP-Windowsdistribution enthalten. Um sie erfolgreich laden zu können, muss sie innerhalb des Pfades liegen, der von der Windows-Umgebungsvariablen PATH bestimmt wird. Lesen Sie dazu auch den FAQ-Eintrag "Wie füge ich mein PHP-Verzeichnis der PATH-Variablen unter Windows hinzu?", um mehr Informationen darüber zu erhalten. Das Kopieren libmysql.dll in das Windows-Systemverzeichnis (typischerweise c:\Windows\system) funktioniert ebenfalls, da das Systemverzeichnis standardmäßig im PATH enthalten ist. Allerdings raten wir von dieser Arbeitsweise stark ab.
Unter Windows gilt für die PHP-Versionen 5.3 und neuer, dass die mysqli-Erweiterung standardmäßig den MySQL-Native-Treiber verwendet. Das bedeutet, dass Sie sich keine Gedanken über die Konfiguration des Zugriffs auf die libmysql.dll machen brauchen; Sie müssen nur sicherstellen, dass die Erweiterung in der php.ini aktiviert ist.
Wie bei der Aktivierung jeder anderen PHP-Extension (wie z.B. php_mysqli.dll) sollte auch hier die PHP-Direktive extension_dir auf das Verzeichnis zeigen, in dem die vorhandenen PHP-Extensions liegen. Lesen Sie dazu auch den Abschnitt Manual Windows Installation Instructions. Ein entsprechender extension_dir-Wert für PHP 5 ist zum Beispiel c:\php\ext.
Hinweis:
Wenn beim Starten des Webservers ein Fehler ähnlich dem folgenden auftritt: "Unable to load dynamic library './php_mysqli.dll'", wird im Normalfall die php_mysqli.dll und/oder die libmysql.dll nicht vom System gefunden.