PDO_MYSQL ist ein Treiber, der die PHP Data Objects (PDO)-Schnittstelle implementiert, um den Zugriff von PHP auf MySQL-Datenbanken zu ermöglichen. Wenn Sie eine PHP-Version vor 7.1.16 oder PHP 7.2 vor 7.2.4 ausführen, setzen Sie das Standard-Passwort-Plug-in von MySQL 8 Server auf mysql_native_password, sonst werden Sie Fehler ähnlich der folgenden sehen: Der Server hat die dem Client unbekannte Authentifizierungsmethode [caching_sha2_password] selbst bei caching_sha2_password ist nicht benutzt. Dies liegt daran, dass MySQL 8 standardmäßig caching_sha2_password verwendet, ein Plugin, das von älteren PHP-Versionen (mysqlnd) nicht erkannt wird. Ändern Sie es stattdessen, indem Sie . Das Plugin caching_sha2_password wird in einer zukünftigen PHP-Version unterstützt. In der Zwischenzeit wird dies von der mysql_xdevapi-Erweiterung unterstützt. Warnung Achtung: Einige MySQL-Tabellentypen (Speicher-Engines) unterstützen keine Transaktionen. Beim Schreiben von Transaktionsdatenbankcode mit einem Tabellentyp, der keine Transaktionen unterstützt, gibt MySQL vor, dass eine Transaktion erfolgreich initiiert wurde. Darüber hinaus enthalten alle ausgegebenen DDL-Abfragen implizit alle anstehenden Transaktionen. Der MySQL-Treiber unterstützt über PDOStatement::bindParam nicht richtig, während solche Parameter verwendet werden können, werden sie nicht aktualisiert (d. h. die tatsächliche Ausgabe wird ignoriert). Die gängigen Unix-Distributionen enthalten Binärversionen von PHP, die installiert werden können. Obwohl diese Binärversionen normalerweise mit Unterstützung für die MySQL-Erweiterungen erstellt werden, müssen die Erweiterungsbibliotheken selbst möglicherweise mit einem zusätzlichen Paket installiert werden. Überprüfen Sie den Paketmanager, der mit Ihrer gewählten Distribution geliefert wird, auf Verfügbarkeit. Unter Ubuntu installiert das Paket beispielsweise die PHP-Erweiterungen ext/mysql, ext/mysqli und PDO_MYSQL. Unter CentOS installiert das Paket auch diese drei PHP-Erweiterungen. Alternativ können Sie diese Erweiterung selbst kompilieren. Wenn Sie PHP aus dem Quellcode erstellen, können Sie die MySQL-Erweiterungen angeben, die Sie verwenden möchten, sowie Ihre Wahl der Client-Bibliothek für jede Erweiterung. Verwenden Sie beim Kompilieren --with-pdo-mysql[=DIR], um die PDO-MySQL-Erweiterung zu installieren, wobei die optionale MySQL-Basisbibliothek ist. Mysqlnd ist die Standardbibliothek. Einzelheiten zum Auswählen einer Bibliothek finden Sie unter Auswählen einer MySQL-Bibliothek. Optional legt --with-mysql-sock[=DIR] die Position auf den MySQL-Unix-Socket-Zeiger für alle MySQL-Erweiterungen fest, einschließlich PDO_MYSQL. Wenn nicht angegeben, werden die Standardspeicherorte durchsucht. Optional wird --with-zlib-dir[=DIR] verwendet, um den Pfad zum libz-Installationspräfix festzulegen. Die SSL-Unterstützung wird mit den entsprechenden PDO_MySQL-Konstanten aktiviert, was dem Aufruf der MySQL-C-API-Funktion mysql_ssl_set entspricht. Außerdem kann SSL nicht mit PDO::setAttribute aktiviert werden, da die Verbindung bereits besteht. Siehe auch die MySQL-Dokumentation über das Herstellen einer Verbindung zu MySQL mit SSL Die folgenden Konstanten werden von diesem Treiber definiert und sind nur verfügbar, wenn die Erweiterung entweder in PHP kompiliert oder zur Laufzeit dynamisch geladen wurde. Außerdem sollten diese treiberspezifischen Konstanten nur verwendet werden, wenn Sie diesen Treiber verwenden. Die Verwendung treiberspezifischer Attribute mit einem anderen Treiber kann zu unerwartetem Verhalten führen. PDO::getAttribute() kann verwendet werden, um das Attribut zum Überprüfen des Treibers zu erhalten, wenn Ihr Code für mehrere Treiber ausgeführt werden kann. auf einem verwendet der MySQL-Treiber die gepufferten Versionen der MySQL-API. Wenn Sie portablen Code schreiben, sollten Sie stattdessen verwenden. Wenn dieses Attribut auf a gesetzt ist, verwendet der MySQL-Treiber die gepufferten Versionen der MySQL-API. Wenn Sie portablen Code schreiben, sollten Sie stattdessen verwenden. Beispiel #1 Erzwingen, dass Abfragen in mysql gepuffert werden "meine Anwendung funktioniert nur mit mysql; ich sollte stattdessen \$stmt->fetchAll() verwenden"Beachten Sie, dass diese Konstante nur im Array verwendet werden kann, wenn ein neues Datenbank-Handle erstellt wird. Ermöglicht das Beschränken des Ladens von LOKALDATEN auf Dateien, die sich in diesem bestimmten Verzeichnis befinden. Verfügbar ab PHP 8.1.0. Beachten Sie, dass diese Konstante nur im Array verwendet werden kann, wenn ein neues Datenbank-Handle erstellt wird. Beim Verbinden mit dem MySQL-Server auszuführender Befehl. Wird beim erneuten Verbinden automatisch erneut ausgeführt. Beachten Sie, dass diese Konstante nur im Array verwendet werden kann, wenn ein neues Datenbank-Handle erstellt wird. Liest Optionen aus der benannten Optionsdatei statt aus . Diese Option ist nicht verfügbar, wenn mysqlnd verwendet wird, da mysqlnd die mysql-Konfigurationsdateien nicht liest. Liest Optionen aus der benannten Gruppe aus oder der mit angegebenen Datei. Diese Option ist nicht verfügbar, wenn mysqlnd verwendet wird, da mysqlnd die mysql-Konfigurationsdateien nicht liest. Maximale Puffergröße. Standardmäßig 1 MiB. Diese Konstante wird nicht unterstützt, wenn sie gegen mysqlnd kompiliert wird. Gibt die Anzahl der gefundenen (übereinstimmenden) Zeilen zurück, nicht die Anzahl der geänderten Zeilen. Der Dateipfad zur SSL-Zertifizierungsstelle. Der Dateipfad zu dem Verzeichnis, das die vertrauenswürdigen SSL-CA-Zertifikate enthält, die im PEM-Format gespeichert sind. Der Dateipfad zum SSL-Zertifikat. Eine Liste mit einer oder mehreren zulässigen Chiffren zur Verwendung für die SSL-Verschlüsselung in einem von OpenSSL verstandenen Format. Zum Beispiel: Der Dateipfad zum SSL-Schlüssel. Bietet eine Möglichkeit, die Überprüfung des Server-SSL-Zertifikats zu deaktivieren. Diese existiert ab PHP 7.0.18 und PHP 7.1.4. Deaktiviert die Ausführung mehrerer Abfragen sowohl in PDO::prepare() als auch in PDO::query(), wenn auf gesetzt. Beachten Sie, dass diese Konstante nur im Array verwendet werden kann, wenn ein neues Datenbank-Handle erstellt wird Das Verhalten dieser Funktionen wird durch Einstellungen in beeinflusst. Weitere Details und Definitionen der PHP_INI_*-Modi finden Sie unter Weitere Details und Definitionen der PHP_INI_*-Modi finden Sie unter Wo eine Konfigurationseinstellung gesetzt werden kann Setzt einen Unix-Domain-Socket. Dieser Wert kann entweder zur Kompilierzeit gesetzt werden, wenn beim Konfigurieren ein Domänen-Socket gefunden wird. Diese INI-Einstellung gilt nur für Unix. Aktiviert das Debuggen für PDO_MYSQL. Diese Einstellung ist nur verfügbar, wenn PDO_MYSQL gegen mysqlnd und im PDO-Debug-Modus kompiliert wird.