Conexión PHP PDO

PHP PDO 参考手册Manual de referencia de PHP PDO

La conexión se establece creando una instancia de la clase base PDO. Independientemente del controlador que se utilice, se usa el nombre de clase PDO.

Conexión a MySQL

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

Nota:Si hay algún error de conexión, se lanzará un objeto de excepción PDOException.

Manejo de errores de conexión

<?php
try {
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    foreach($dbh->query('SELECT * from FOO') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>

Después de conectarse correctamente a la base de 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, es necesario destruir el objeto para asegurar que todas las referencias restantes a él sean eliminadas; se puede asignar un valor NULL a la variable del objeto.

Si no se hace esto, PHP cerrará la conexión automáticamente al final del script.

Cerrar una conexión:

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// 在此使用连接


// 现在运行完成,在此关闭连接
$dbh = null;
?>

Muchas aplicaciones web se benefician del uso de conexiones persistentes al servicio de base de datos.

Las conexiones persistentes no se cierran al final del script y se almacenan en caché; se reutilizan cuando otro script con las mismas credenciales solicita una conexión.

La caché de conexiones persistentes evita la sobrecarga de establecer una nueva conexión cada vez que el script necesita una sesión con la base de datos, haciendo que la aplicación web sea más rápida.

Conexiones persistentes

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));
?>

Nota:Si se desea usar una conexión persistente, se debe establecer PDO::ATTR_PERSISTENT en el array de opciones del controlador pasado al constructor de PDO. Si se establece este atributo después de la inicialización del objeto con PDO::setAttribute(), el controlador no utilizará la conexión persistente.


PHP PDO 参考手册Manual de referencia de PHP PDO Otras extensiones