Diferencia entre revisiones de «Usuario:Lmorillas/desarrollo web servidor/php/pdo»
De WikiEducator
Línea 13: | Línea 13: | ||
* Velocidad | * Velocidad | ||
* Facilita la instalación | * Facilita la instalación | ||
+ | ==Componentes== | ||
+ | Tres clases: | ||
+ | * PDO. Responable de la conexión con la base de datos. Crea instancias de PDOStatment | ||
+ | * PDOStatment. Gestionan las consultas SQL y la obtención de resultados. | ||
+ | * PDOException. Gestión de errores. | ||
}} | }} | ||
Línea 18: | Línea 23: | ||
{{Lectura| | {{Lectura| | ||
* http://php.net/manual/en/book.pdo.php | * http://php.net/manual/en/book.pdo.php | ||
+ | ** Gestión de conexiones: http://www.php.net/manual/es/pdo.connections.php | ||
+ | ** Sentencias preparadas: http://www.php.net/manual/es/pdo.prepared-statements.php | ||
+ | ** Manejo de errores: http://www.php.net/manual/es/pdo.error-handling.php | ||
* http://www.mclibre.org/consultar/php/lecciones/php_db_pdo.html | * http://www.mclibre.org/consultar/php/lecciones/php_db_pdo.html | ||
}} | }} | ||
{{Conocimiento previo|Title=Ejemplos| | {{Conocimiento previo|Title=Ejemplos| | ||
+ | == Drivers instalados == | ||
+ | <source lang="php"> | ||
+ | print_r(PDO::getAvailableDrivers()); | ||
+ | </source> | ||
== Ej. Conexión == | == Ej. Conexión == | ||
<source lang="php"> | <source lang="php"> | ||
Línea 46: | Línea 58: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | == Cerrar conexión == | ||
+ | <source lang="php"> | ||
+ | $conn = null; | ||
+ | </source> | ||
+ | }} | ||
+ | |||
+ | |||
+ | {{Conocimiento previo|Title=Conexiones Persistentes| | ||
+ | |||
+ | Las conexiones persistentes no son cerradas al final del script. Son reutilizadas cuando otro script solicita una conexión usando las mismas credenciales. Una caché de la conexión optimiza el rendimiento. | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array( | ||
+ | PDO::ATTR_PERSISTENT => true | ||
+ | )); | ||
+ | ?> | ||
+ | </source> | ||
+ | |||
+ | {{Tip|Para utilizar conexiones persistentes, hay que configurar PDO::ATTR_PERSISTENT en el array de opciones de drivers pasándoselo al constructor PDO. }} | ||
}} | }} |
Revisión de 12:00 9 nov 2012
Contenido
¿Qué es PDO?
Ventajas
ComponentesTres clases:
|
|
Drivers instaladosprint_r(PDO::getAvailableDrivers()); Ej. Conexión# MySQL $conn = new PDO("mysql:host = $host; dbname = $baseDatos", $usuario, $contraseña); # PostgreSQL $conn = new PDO("pgsql:host = $host port = $puerto dbname = $baseDatos", $usuario, $contraseña); Ej. Completo$id = 5; try { $conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare('SELECT * FROM myTable WHERE id = :id'); $stmt->execute(array('id' => $id)); while($row = $stmt->fetch()) { print_r($row); } } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } Cerrar conexión$conn = null;
|
Las conexiones persistentes no son cerradas al final del script. Son reutilizadas cuando otro script solicita una conexión usando las mismas credenciales. Una caché de la conexión optimiza el rendimiento. <?php $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array( PDO::ATTR_PERSISTENT => true )); ?> Tip: Para utilizar conexiones persistentes, hay que configurar PDO::ATTR_PERSISTENT en el array de opciones de drivers pasándoselo al constructor PDO.
|