downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

PDO::errorCode> <PDO::commit
[edit] Last updated: Fri, 25 May 2012

view this page in

PDO::__construct

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::__construct Crea una instancia de PDO representando una conexión a la base de datos

Descripción

PDO::__construct() ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )

Crea una instancia de PDO para representar una conexión a la base de datos solicitada.

Parámetros

dsn

EL nombre de origen de datos (DSN, Data Source Name en inglés), contiene la información requerida para conectarse a la base de datos.

En general, un DSN consiste en el nombre del driver PDO, seguido por dos puntos, seguido por la sintaxis específica del driver PDO para la conexión. Más información está disponible en la documentación específica del driver PDO.

El parámetro dsn soporta tres métodos diferentes para especificar los parámetros requeridos para crear la conexión a la base de datos:

Invocación del driver

dsn contiene el DSN completo.

URI invocation

dsn está formado por uri: seguido por un URI que define la ubicación de un archivo que contiene una cadena con el DSN. El URI puede especificar un archivo local o una URL remota.

uri:file:///path/to/dsnfile

Aliasing

dsn está formado por un nombre name que mapea a pdo.dsn.name en php.ini definido en la cadena de DSN.

Nota:

El alias debe estar definido en php.ini, y no en .htaccess o httpd.conf

username

El nombre de usuario para la cadena DSN. Este parámetro es opcional para algunos drivers PDO.

password

La contraseña para la cadena DSN. Este parámetro es opcional para algunos drivers PDO.

driver_options

Un array de la forma clave=>valor con opciones específicas del driver para la conexión.

Valores devueltos

Devuelve un objeto PDO en caso de éxito.

Errores/Excepciones

PDO::__construct() lanza una PDOException si el intento de conexión a la base de datos requerida falla.

Ejemplos

Ejemplo #1 Crea una instancia PDO a través de una invocación del driver

<?php
/* Conectar a una base de datos ODBC invocando al driver  */
$dsn 'mysql:dbname=testdb;host=127.0.0.1';
$user 'dbuser';
$password 'dbpass';

try {
    
$dbh = new PDO($dsn$user$password);
} catch (
PDOException $e) {
    echo 
'Connection failed: ' $e->getMessage();
}

?>

Ejemplo #2 Crear una instancia PDO a través de un URI

El siguiente ejemplo asume que el archivo /usr/local/dbconnect existe, con los permisos necesarios para que PHP lea el archivo. Éste contiene el DSN para el PDO necesario para conectarse a una base de datos DB2 a través de un driver PDO_ODBC:

odbc:DSN=SAMPLE;UID=john;PWD=mypass

El programa PHP puede crear una conexión a una base de datos simplemente pasando el parámetro uri: y apuntando al fichero URI:

<?php
/* Conectar a la base de datos ODBC invocando al driver */
$dsn 'uri:file:///usr/local/dbconnect';
$user '';
$password '';

try {
    
$dbh = new PDO($dsn$user$password);
} catch (
PDOException $e) {
    echo 
'Connection failed: ' $e->getMessage();
}

?>

Ejemplo #3 Crea una instancia de PDO usando un alias

El siguiente ejemplo asume que php.ini contiene la siguiente entrada para permitir la conexión a una base de datos MySQL usando sólo el alias mydb:

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
/* Conectar a la base de datos ODBC invocando al driver */
$dsn 'mydb';
$user '';
$password '';

try {
    
$dbh = new PDO($dsn$user$password);
} catch (
PDOException $e) {
    echo 
'Connection failed: ' $e->getMessage();
}

?>



PDO::errorCode> <PDO::commit
[edit] Last updated: Fri, 25 May 2012
 
add a note add a note User Contributed Notes PDO::__construct
piotrekkr at o2 dot pl 15-Sep-2010 12:19
To connect throught unix socket you need to use
<?php
$dsn
= 'mysql:dbname=testdb;unix_socket=/path/to/socket';
?>

You musn't specify host when using socket.
Mitsuaki Ishimoto 29-Aug-2010 11:14
You have to use the following option "MYSQL_ATTR_READ_DEFAULT_FILE" to prevent someone from attacking your system by SQL Injection.

<?php
$dsn
= 'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME;
$dbh = new PDO(
   
$dsn,
   
DB_USER,
   
DB_PASS,
    array(
       
PDO::MYSQL_ATTR_READ_DEFAULT_FILE => '/etc/my.cnf'
   
)
);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
?>
Victor T. 20-Feb-2010 09:34
If you use the UTF-8 encoding, you have to use the fourth parameter :

<?php
$db
= new PDO('mysql:host=myhost;dbname=mydb', 'login', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
?>
subme at interia dot pl 25-Nov-2008 02:03
To specify a database connection port use the following DSN string

<?php
$dsn
= 'mysql:dbname=testdb;host=127.0.0.1;port=3333';
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites