PHP 8.5.0 Alpha 1 available for testing

PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSNConexión a las bases de datos MySQL

Descripción

El Data Source Name (DSN) de PDO_MYSQL se compone de los siguientes elementos:

Prefijo DSN

El prefijo DSN es mysql:.

host

El host donde se encuentra el servidor de base de datos.

port

El número de puerto donde el servidor de base de datos está escuchando.

dbname

El nombre de la base de datos.

unix_socket

El socket Unix de MySQL (no debe utilizarse con host o port).

charset

El juego de caracteres. Consulte la documentación sobre los conceptos de los juegos de caracteres para obtener más información.

Ejemplos

Ejemplo #1 Ejemplos con el DSN de PDO_MYSQL

El siguiente ejemplo muestra el DSN PDO_MYSQL para conectarse a las bases de datos MySQL:

mysql:host=localhost;dbname=testdb
Ejemplos más completos:
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

Notas

Nota: Solo Unix:

Cuando el nombre de host es "localhost", la conexión se realiza a través de un socket Unix. Si PDO_MYSQL está compilado con libmysqlclient, entonces el archivo de socket es el especificado durante la compilación de libmysqlclient. Si PDO_MYSQL está compilado con mysqlnd, un socket por omisión puede ser indicado a través del parámetro pdo_mysql.default_socket.

add a note

User Contributed Notes 3 notes

up
40
codeslinger at compsalot dot com
16 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
8
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