Die mysqli
-Erweiterung wurde in PHP 5.0.0 eingeführt; der MySQL Native Driver mit PHP 5.3.0.
Die gängigen Unix-Distributionen enthalten Binärversionen von PHP, die installiert werden können. Obwohl diese Binärversionen typischerweise mit Unterstützung für die MySQL-Erweiterungen erstellt wurden, müssen möglicherweise die Erweiterungs-Bibliotheken selbst unter Verwendung eines zusätzlichen Pakets installiert werden. Die Paketverwaltung der gewählten Distribution ist auf dessen Verfügbarkeit zu prüfen.
Beispielsweise installiert unter Ubuntu das Paket php5-mysql
die PHP-Erweiterungen ext/mysql, ext/mysqli und pdo_mysql. Unter CentOS installiert das Paket php-mysql
diese drei Erweiterungen ebenfalls.
Alternativ kann diese Erweiterung auch selbst kompiliert werden. Das Kompilieren von PHP aus den Quellen erlaubt die Auswahl der MySQL-Erweiterungen, die verwendet werden sollen, sowie die Wahl der Client-Bibliothek für jede Erweiterung.
Der MySQL Native Driver wird empfohlen, da er 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 Driver von PHP?, um einen kurzen Überblick über die Vorteile des MySQL Native Drivers zu erhalten.
/path/to/mysql_config
stellt den Pfad des mysql_config
-Programms dar, das mit MySQL-Server ausgeliefert wird.
PHP-Version | Standard | Konfigurationsoptionen: mysqlnd | Konfigurationsoptionen: libmysqlclient | Changelog |
---|---|---|---|---|
5.4.x und höher | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | mysqlnd ist nun standardmäßig aktiviert |
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd wird unterstützt |
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Nicht verfügbar | --with-mysqli=/path/to/mysql_config | mysqlnd wird nicht unterstützt |
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 (libmysqlclient) verwendet, während die mysqli
-Erweiterung so konfiguriert ist, dass sie den MySQL Native Driver verwendet. Alle Kombinationen von Erweiterungen und Client-Bibliotheken sind möglich.
Unter Windows muss die DLL php_mysqli.dll in der php.ini aktiviert werden.
Wie bei der Aktivierung jeder anderen PHP-Erweiterung (wie z. B. php_mysqli.dll) sollte auch hier die PHP-Anweisung extension_dir auf das Verzeichnis zeigen, in dem die vorhandenen PHP-Erweiterungen liegen. Siehe dazu auch den Abschnitt Manuelle PHP-Installation auf Windows. Ein entsprechender extension_dir
-Wert 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'"
, liegt das daran, dass php_mysqli.dll vom System nicht gefunden wird.