Die PHP-Erweiterungen mysqli und PDO_MySQL sind schlanke Wrapper, die auf
einer C-Clientbibliothek aufbauen. Es kann eine der beiden Bibliotheken
mysqlnd und
libmysqlclient
verwendet werden. Die Bibliothek muss
beim Kompilieren ausgewählt werden.
Die Bibliothek mysqlnd ist Teil der PHP-Distribution. Sie bietet Funktionen wie Lazy Connections und Abfrage-Caching, Funktionen, die mit libmysqlclient nicht verfügbar sind, weshalb dringend empfohlen wird, die eingebaute Bibliothek mysqlnd zu verwenden. Die mysqlnd-Dokumentation enthält zusätzliche Details und eine Auflistung der Funktionen, die sie bietet.
Beispiel #1 Konfigurationsoptionen für die Verwendung von mysqlnd oder libmysqlclient
// Empfohlen, kompiliert mit mysqlnd $ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd // Alternativ empfohlen, kompiliert mit mysqlnd $ ./configure --with-mysqli --with-pdo-mysql // Nicht empfohlen, kompiliert mit libmysqlclient $ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config
Vergleich der Merkmale der Bibliotheken
Es wird empfohlen, die Bibliothek mysqlnd anstelle der Client-Server-Bibliothek von MySQL (libmysqlclient) zu verwenden. Beide Bibliotheken werden unterstützt und ständig verbessert.
MySQL native driver (mysqlnd) | Client-Server-Bibliothek von MySQL (libmysqlclient ) |
|
---|---|---|
Teil der PHP-Distribution | Ja | Nein |
PHP-Version der Einführung | 5.3.0 | N/A |
Lizenz | PHP-Lizenz 3.01 | Duale Lizenz |
Entwicklungsstatus | Aktiv | Aktiv |
Lebenszyklus | Kein Ende angekündigt | Kein Ende angekündigt |
Voreinstellung beim Kompilieren (bei allen MySQL-Erweiterungen) | Ja | Nein |
Unterstützung des Komprimierungsprotokolls | Ja | Ja |
SSL-Unterstützung | Ja | Ja |
Unterstützung von benannten Pipes | Ja | Ja |
Nicht-blockierende, asynchrone Abfragen | Ja | Nein |
Statistiken zur Leistung | Ja | Nein |
LOAD LOCAL INFILE berücksichtigt die Direktive open_basedir | Ja | Nein |
Verwendet das PHP-eigene Speicherverwaltungssystem (hält sich z. B. an die PHP-Speichergrenzen) | Ja | Nein |
Rückgabe numerischer Spalten als Doubles (COM_QUERY) | Ja | Nein |
Rückgabe numerischer Spalten als Zeichenketten (COM_QUERY) | Ja | Ja |
Plugin-API | Ja | Eingeschränkt |
Automatische Wiederherstellung der Verbindung | Nein | Optional |