La conexión se establece creando una instancia de la clase base PDO. Independientemente del controlador que se utilice, se utiliza el nombre de clase PDO.
<?php$dbh = nuevo PDO('mysql:host=localhost;dbname=test', $usuario, $contraseña);?>
Nota: Si hay algún error de conexión, se generará un objeto de excepción PDOException.
<?phptry { $dbh = nuevo PDO('mysql:host=localhost;dbname=test', $usuario, $pass); foreach($dbh->query('SELECT * from FOO') as $fila) { print_r ($fila); } $dbh = nulo;} catch (PDOException $e) { print "¡Error!: " $e->getMessage() . "<br/>"; morir();}?>
Después de conectar correctamente los datos, se devuelve una instancia de la clase PDO al script. Esta conexión permanece activa durante el ciclo de vida del objeto PDO.
Para cerrar la conexión, debe destruir el objeto para asegurarse de que se eliminen todas las referencias restantes. Puede asignar un valor NULL a la variable del objeto.
Si no hace esto, PHP cerrará automáticamente la conexión al final del script.
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass // Utilice la conexión aquí // Ahora la ejecución está completa, cierre la conexión aquí $dbh = null); ;? >
Muchas aplicaciones web se benefician del uso de conexiones persistentes a servicios de bases de datos.
Las conexiones persistentes no se cierran una vez finalizada la secuencia de comandos y se almacenan en caché y se reutilizan cuando se realiza otra solicitud de conexión de secuencia de comandos utilizando las mismas credenciales.
El almacenamiento en caché de conexiones persistentes puede hacer que las aplicaciones web sean más rápidas al evitar la sobrecarga de establecer una nueva conexión cada vez que un script necesita comunicarse con la base de datos.
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $usuario, $pass, array( PDO::ATTR_PERSISTENT => true));?>
Nota: Si desea utilizar conexiones persistentes, debe configurar PDO::ATTR_PERSISTENT en la matriz de opciones del controlador pasada al constructor de PDO. Si este atributo se establece con PDO::setAttribute() después de que se haya inicializado el objeto, el controlador no utilizará conexiones persistentes.