PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSNVerbinden mit MySQL-Datenbanken

Beschreibung

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.

Beispiele

Beispiel #1 DSN-Beispiele für PDO_MYSQL

Das folgende Beispiel zeigt einen PDO_MYSQL-DSN für die Verbindung zu einer MySQL-Datenbank:

mysql:host=localhost;dbname=testdb
Ein paar komplettere Beispiele:
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

Anmerkungen

Hinweis: 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.

add a note

User Contributed Notes 3 notes

up
40
codeslinger at compsalot dot com
15 years ago
I have tested this and found that the "dbname" field is optional. Which is a good thing if you must first create the db.

After creating a db be sure to exec a "use dbname;" command, or else use fully specified table references.
up
7
rhian
7 years ago
xwisdom made a mistake in his comment and got it backwards, correction below:

If you are having problems accessing a remote MYSQL database, the solution is to make sure that you add a white-space after "mysql:"

Change this...:
mysql:host=remote;

...to this:
mysql: host=remote;

See original solution here:
http://stackoverflow.com/a/25432156
up
-1
divinity76 at gmail dot com
5 years ago
here is the example i prefer myself, in my opinion, this is almost always "the correct way" to do it:
<?php

$db
= new \PDO('mysql:host=localhost;dbname=testdb;charset=utf8mb4', 'username', 'password', array(
\PDO::ATTR_EMULATE_PREPARES => false,
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION
));
To Top