MySQL PDO-Treiber (PDO_MYSQL) MySQL PDO-Treiber
&reftitle.intro; PDO_MYSQL ist ein Treiber, der die PHP Data Objects (PDO)-Schnittstelle implementiert, um von PHP aus auf MySQL Datenbanken zugreifen zu können. PDO_MYSQL verwendet standardmäßig emulierte vorbereitete Anweisungen. MySQL 8 Bei PHP-Versionen vor PHP 7.1.16 oder der 7.2-Serie vor 7.2.4 muss das Standard-Passwort-Plugin des MySQL 8-Servers auf mysql_native_password gesetzt werden, da sonst Fehler angezeigt werden wie The server requested authentication method unknown to the client [caching_sha2_password], auch wenn caching_sha2_password nicht verwendet wird. Das liegt daran, dass MySQL 8 standardmäßig caching_sha2_password verwendet und dieses Plugin von den älteren PHP- (mysqlnd) Versionen nicht erkannt wird. Stattdessen muss die Voreinstellung durch den Eintrag default_authentication_plugin=mysql_native_password in der Datei my.cnf geändert werden. Das Plugin caching_sha2_password wird seit PHP 7.4.4 vollständig unterstützt. In älteren Versionen wird es von der Erweiterung mysql_xdevapi unterstützt. Vorsicht ist geboten: Einige MySQL-Tabellentypen (Speicher-Engines) unterstützen keine Transaktionen. Wenn transaktionaler Datenbankcode für einen Tabellentyp geschrieben wird, der keine Transaktionen unterstützt, verhält sich MySQL so, als sei eine Transaktion erfolgreich initiiert worden. Darüber hinaus werden alle ausgelösten DDL-Abfragen implizit alle anstehenden Transaktionen festschreiben. Der MySQL-Treiber unterstützt die Konstante PDO::PARAM_INPUT_OUTPUT über die Methode PDOStatement::bindParam nicht korrekt; solche Parameter können zwar verwendet werden, werden aber nicht aktualisiert (&dh; die eigentliche Ausgabe wird ignoriert).
&reference.pdo-mysql.configure; &reference.pdo-mysql.constants; &reference.pdo-mysql.ini;
PDO_MYSQL DSN Verbinden mit MySQL-Datenbanken &reftitle.description; Der Data Source Name (Name der Datenquelle, DSN) von PDO_MYSQL setzt sich aus den folgenden Elementen zusammen: DSN-Präfix Das DSN-Präfix ist mysql:. host Der Name des Rechners, auf dem sich der Datenbankserver befindet port Die Nummer des Ports, an dem der Datenbankserver lauscht dbname Der Name der Datenbank unix_socket Der MySQL-Unix-Socket (sollte nicht mit host oder port verwendet werden). charset Der Zeichensatz. Weitere Informationen enthält die Dokumentation zum Zeichensatz-Konzept. &reftitle.examples; DSN-Beispiele für PDO_MYSQL Das folgende Beispiel zeigt einen PDO_MYSQL-DSN für die Verbindung zu einer MySQL-Datenbank: Ein paar komplettere Beispiele: &reftitle.notes; Nur Unix: Wenn der Hostname auf "localhost" gesetzt ist, wird die Verbindung zum Server über einen Domain-Socket hergestellt. Wenn PDO_MYSQL gegen libmysqlclient kompiliert wurde, ist der Speicherort der Socket-Datei der einkompilierte Speicherort von libmysqlclient. Wenn PDO_MYSQL gegen mysqlnd kompiliert wurde, kann der Standard-Socket mit der Einstellung pdo_mysql.default_socket festgelegt werden.