Die mysqli
Extension wurde in PHP 5.0.0 eingeführt; der MySQL
Native Treiber mit PHP 5.3.0.
Die üblichen Unix-Distributionen enthalten Binärversionen von PHP, die installiert werden können. Obwohl diese Binärversionen typischerweise mit Unterstützung für die MySQL Extensions erstellt wurden, müssen möglicherweise die Extension-Bibliotheken selbst unter Verwendung eines zusätzlichen Pakets installiert werden. Die Paketverwaltung der gewählten Distribution ist auf Verfügbarkeit zu prüfen.
Beispielsweise installiert unter Ubuntu das php5-mysql
Paket die PHP Extensions ext/mysql, ext/mysqli und pdo_mysql. Unter CentOS
installiert das php-mysql
Paket ebenfalls diese drei
Extensions.
Alternativ kann diese Extension auch selbst kompiliert werden. Das Kompilieren von PHP aus den Quellen erlaubt die Auswahl der MySQL Extensions, die verwendet werden sollen, sowie die Wahl der Client-Bibliothek für jede Extension.
Der MySQL-Native-Treiber 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-Treiber von PHP?, um einen kurzen Überblick über die Vorteile des MySQL-Native-Treibers 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 | 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-Treiber verwendet. Alle Kombinationen von Erweiterungen und
Client-Bibliotheken sind möglich.
Unter Windows wird PHP in der Regel durch den Binärinstaller installiert.
Unter Windows gilt für die PHP-Versionen 5.3 und neuer, dass die
mysqli
-Erweiterung standardmäßig aktiviert ist, und den MySQL-Native-Treiber
verwendet. Das bedeutet, dass Sie sich keine Gedanken über die Konfiguration
des Zugriffs auf die libmysql.dll machen brauchen.
Unter diesen alten, nicht mehr unterstützten PHP-Versionen (die
Unterstützung von PHP 5.2 wurde am 6. Januar 2011 eingestellt),
sind zusätzliche Konfigurationsschritte
notwendig, um mysqli
zu aktivieren und die
Client-Bibliothek anzugeben, die verwendet werden soll.
Die mysqli
-Erweiterung ist standardmäßig
nicht 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.
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.