Installation

Die mysqli Extension wurde in PHP 5.0.0 eingeführt; der MySQL Native Treiber mit PHP 5.3.0.

Installation on Linux

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.

MySQLi Kompilierzeit Support-Matrix
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.

Installation auf Windows-Systemen

Unter Windows wird PHP in der Regel durch den Binärinstaller installiert.

PHP 5.3.0+

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.

PHP 5.0, 5.1, 5.2

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.

add a note add a note

User Contributed Notes 4 notes

up
-16
David dot Kit dot Friedman at gmail dot com
9 years ago
>On Windows, PHP is most commonly installed using the binary installer. Once PHP has been installed, some >configuration is required to enable mysqli and specify the client library you want it to use.

Basically, if you want to add extensions you can double-click again on the installer file. The installer will find the already installed PHP and will ask if you want to change the installation.

When you go through the prompts it will take you back to the list of extensions and you can pick which extensions you want to add.

For the mysqli extension the installer also edited php.ini so that the extension was enabled:

[PHP_MYSQLI]
extension=php_mysqli.dll

the installer added those lines to the end of the file.
up
-16
Mark F
7 years ago
Just to note with regards to SSL and compression. MySQLnd and thus extensions using mysqlnd such as mysqli... now supports SSL and compression. Both have been supported inside mysqlnd since PHP 5.3.3 - http://www.php.net/manual/en/mysqlnd.overview.php
up
-25
josh dot ribakoff at gmail dot com
8 years ago
I kept getting configure errors:

/tmp/cc4f2PKd.o: In function `main':
/usr/src/php-5.3.0/configure:14287: undefined reference to `yp_get_default_domain'
collect2: ld returned 1 exit status
configure: failed program was:
#line 14270 "configure"
#include "confdefs.h"

The solution was to configure with mysql native driver as outlined on this page.
up
-30
Davinken
3 years ago
On CentOS 6 php-mysqli has been already incorporated into the php-mysql RPM package.
To Top