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 |