PDO_MYSQL DSN
PDO_MYSQL DSNConnecting to MariaDB databases
Description
The PDO_MYSQL Data Source Name (DSN) is composed of the following elements:
- DSN prefix
-
The DSN prefix is
mysql:. host-
The hostname on which the database server resides.
port-
The port number where the database server is listening.
dbname-
The name of the database.
unix_socket-
The MariaDB Unix socket (shouldn't be used with
hostorport). charset-
The character set.
Prior to PHP 5.3.6, this element was silently ignored. The same behaviour can be partly replicated with the
PDO::MYSQL_ATTR_INIT_COMMANDdriver option, as the following example shows.WarningThe method in the below example can only be used with character sets that share the same lower 7 bit representation as ASCII, such as ISO-8859-1 and UTF-8. Users using character sets that have different representations (such as UTF-16 or Big5) must use the
charsetoption provided in PHP 5.3.6 and later versions.Example 20.205. Setting the connection character set to UTF-8 prior to PHP 5.3.6
<?php $dsn = 'mysql:host=localhost;dbname=testdb'; $username = 'username'; $password = 'password'; $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', ); $dbh = new PDO($dsn, $username, $password, $options); ?>
Changelog
| Version | Description |
|---|---|
| 5.3.6 | Prior to version 5.3.6, charset was ignored. |
Examples
Example 20.206. PDO_MYSQL DSN examples
The following example shows a PDO_MYSQL DSN for connecting to MariaDB databases:
mysql:host=localhost;dbname=testdb
More complete examples:
mysql:host=localhost;port=3307;dbname=testdb mysql:unix_socket=/tmp/mysql.sock;dbname=testdb
Notes
Unix only:When the host name is set to 'localhost', then the connection to the server is made thru a domain socket. If PDO_MYSQL is compiled against libmysql then the location of the socket file is at libmysql's compiled in location. If PDO_MYSQL is compiled against mysqlnd a default socket can be set thru the pdo_mysql.default_socket setting.