PHP Conference Nagoya 2025

PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSNConectando a bancos de dados MySQL

Descrição

O Data Source Name (DSN) do PDO_MYSQL é composto dos seguintes elementos:

Prefixo DSN

O prefixo DSN é mysql:.

host

O nome do servidor onde está o banco de dados.

port

O número da porta onde o servidor do banco de dados está escutando.

dbname

O nome do banco de dados.

unix_socket

O soquete Unix do MySQL (não deve ser usado com host ou port).

charset

O conjunto de caracteres. Veja a documentação sobre conjunto de caracteres para mais informação.

Exemplos

Exemplo #1 Exemplos de DSN do PDO_MYSQL

O exemplo a seguir demonstra um DSN do PDO_MYSQL para conexão com banco de dados MySQL:

mysql:host=localhost;dbname=testdb
Exemplos mais completos:
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

Notas

Nota: Somente em Unix:

Quando o nome do servidor é definido como "localhost", a conexão ao servidor é feita através de um soquete de domínio. Se o PDO_MYSQL tiver sido compilado usando libmysqlclient, a localização do soquete é a mesma localização da compilação da libmysqlclient. Se o PDO_MYSQL foi compilado usando mysqlnd, um soquete padrão pode ser definido através da configuração pdo_mysql.default_socket.

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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
8 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