PDO_MYSQL DSN
PDO_MYSQL DSN
Connecting 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
host
orport
). 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_COMMAND
driver 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
charset
option 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.