Algunos de los niños de Juego de Tronos vestidos de calle

Podría parecer la foto de una reunión de geeks o una quedada de amigos del chat, pero no, son parte del reparto de actores de la serie de HBO Juego de Tronos.

Se trata Arya Stark, Sansa Stark, Theon Greyjoy, Robb Stark y Jon Nieve… aunque despojados de sus vestimentas medievales, en plan casual.

Las chicas son bastante reconocibles. Theon sigue teniendo esa mirada de estar urdiendo alguna cosa. Robb demuestra que sabe sonreír…. pero el que resulta más irreconocible es Jon Nieve (Kit Harington) y ese look de intelectual gafa-pastas modernillo, ¿no?

(¡Gratz Lorka!)

Originales estanterías para libros

Lo más habitual es tener a nuestros preciados libros en muebles de estanterías (o librerías) de los de toda la vida. Es decir, con tablas horizontales y forma cuadrada o rectangular. Muebles funcionales y sin más pretensiones que contener libros.

Pero tenemos que saber que nuestras joyas literarias pueden estar en un contexto mucho más original y fashion que esto… solo hay que ver estas propuestas de estanterías para libros.

Introducción a PDO: PHP Data Objects

PDO es una librería de acceso a bases de datos para PHP.
La necesidad de una librería como PDO nace de la gran cantidad de bases de datos soportadas por PHP. Cada una de estas bases de datos necesita de su propia API para hacer tareas generalmente comunes al resto. Esto provoca que nuestro código no sea fácil portar de una base de datos a otra y ayuda (con la colaboración de muchas otras cosas) a complicarnos la vida.

Para solucionar este problema en PHP existen múltiples librerías ofrecidas por terceros. ADODB, PEAR DB y MDB2 son algunas de las más populares.

Aunque la mayoría de estas librerías son mucho mas maduras que PDO y en algunos aspectos ofrecen muchas más funcionalidades, PDO tiene ciertas ventajas que no podemos obviar.

Para empezar: la velocidad. PDO esta compilado en C/C++, por los que ofrece mayor rapidez de ejecución que sus competidoras (de código interpretado). Por otra parte: viene incorporado en PHP5 (es la solución “oficial” y en continua evolución) y desde PHP 5.1 viene “enabled” por defecto. De esta manera no tienes que importar ni cargar código de terceros cuando quieres usarlo.

No hay que olvidar que PDO está completamente orientado a objetos, lo que facilita su uso frente al engorro de las decenas de diferentes funciones de las API de cada sistema de bases de datos.

PDO actualmente soporta: Microsoft SQL Server, Firebird, IBM Informix, MySQL, Oracle, ODBC, PostgreSQL, SQLite.

Conexión a la base de datos

Una buena manera de ver la idea que hay detrás de una librería como PDO es mostrar por un lado como se realiza una conexión con la API de MySQL y PostgreSQL y por otro lado la versión con PDO.

MySQL:

[code language=’php’]
$conexion = mysql_connect($host, $usuario, $password);
mysql_select_db($db, $conexion);
[/code]

PostgreSQL:

$conexion =pg_connect(“host=$host dbname=$db user=$usuario password=$password”);

Como podemos ver, a pesar de usar dos funciones diferentes para realizar la conexión, la forma de hacerlo es prácticamente la misma.

Ahora, con PDO.

Para MySQL:

$conexion = new PDO(“mysql:host=$host; dbname=$db”, $usuario, $password);

Para PostgreSQL:

$conexion = new PDO(“pgsql:host=$host; dbname=$db”, $usuario, $password);

Solo el nombre del driver de la base de datos que usemos cambia.

Ahora, a modo de ejemplo, veamos como se haría una simple consulta SELECT con PDO.

$conexion = new PDO(“mysql:host=$host; dbname=$db”, $usuario, $password);
//queda claro que las variables necesarias para el DSN están convenientemente informadas.
//$host=localhost, $db = basedatos, …


$sql = “SELECT * FROM tabla ORDER by id”;
$query = $conexion->query($sql);
while( $row = $query->fetch(PDO::FETCH_ASSOC) )
{
print_r($row);
}

Espero profundizar mas en diferentes aspectos de PDO como excepciones, sentencias preparadas y manipulación de rowsets entre otros en los próximos post.

¡Hasta pronto!