

En esta ocasión seguiremos viendo otra de las ventajas de porque deberíamos usar la librería PDO para hacer nuestras conexiones a la BD.
Fluent PDO es una pequeña librería para PHP que te permite construir queries de forma rápida, además de que disminuye la cantidad de errores que podríamos cometer al escribir sintaxis SQL.
Los enlaces para descargar los archivos utilizados en este tutorial son:
Fluent PDO: https://github.com/envms/fluentpdo
Esta práctica: https://bitbucket.org/hoclabs/blog/src
CONEXIÓN
[php]require('FluentPDO/FluentPDO.php'); try { $pdo = new PDO("mysql:host=localhost;dbname=blog", "usuario", "contraseña"); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $pdo->exec("set charset utf8"); $fluent = new FluentPDO($pdo); } catch (PDOException $e) { echo "Error al conectar la base de datos" . $e->getMessage();[/php]
CONSULTAS
[php]try {Para hacer un select debemos utilizar el método ‘from()’
Esta consulta equivale a: ‘SELECT * FROM usuarios’
$query = $fluent->from(‘usuarios’);
echo ‘<pre>’;
foreach ($query as $row) {
echo ‘Nombre: ‘ . $row[‘nombre’] . ‘, Fecha registro: ‘ . $row[‘fecha_registro’] . ‘<br>’;
}
echo ‘<hr>’;
Si quisieramos seleccionar campos especificos de busqueda debemos pasar como parámetro un array
$query = $fluent->from(‘usuarios’)->select(array(‘id, nombre’));
foreach ($query as $row) {
echo ‘ID: ‘ . $row[‘id’] . ‘ Nombre: ‘ . $row[‘nombre’] . ‘<br>’;
}
echo ‘<hr>’;
Si queremos añadir un WHERE a nuestra consulta utilizamos el método WHERE()
$query = $fluent->from(‘usuarios’)->select(array(‘id, nombre, fecha_registro’))->where(‘id’, 2);
foreach ($query as $row) {
echo ‘ID: ‘ . $row[‘id’] . ‘ Nombre: ‘ . $row[‘nombre’] . ‘Fecha registro: ‘ . $row[‘fecha_registro’] . ‘<br>’;
}
echo ‘<hr>’;
Si además deseamos poner un limite a nuestra consulta usamos el método limit()
$query = $fluent->from(‘usuarios’)->select(array(‘id, nombre, fecha_registro’))->limit(4);
foreach ($query as $row) {
echo ‘ID: ‘ . $row[‘id’] . ‘ Nombre: ‘ . $row[‘nombre’] . ‘ Fecha registro: ‘ . $row[‘fecha_registro’] . ‘<br>’;
}
echo ‘</pre><hr>’;
} catch (PDOException $e) {
die($e->getMessage());
}[/php]
INSERCIONES
[php]<?php try { Para hacer una inserción debemos utilizar el método 'insertInto', además debemos definir un array asociativo el cual contendrá el campo y el valor que se escribirá en dicho campo $values = array('nombre' => 'Jose Castillo'); $query = $fluent->insertInto('usuarios')->values($values); También podemos usar el shortcut, los dos hacen lo mismo $query = $fluent->insertInto('usuarios', $values); A diferencia de un select, en la inserción debemos llamar el metodo 'execute()' y guardamos la respuesta obtenida $insertado = $query->execute(); El valor que retorna la inserción es el id de la fila recien insertada, así validamos la ejecución var_dump($insertado); } catch (PDOException $e) { die($e->getMessage()); }[/php]
ACTUALIZACIONES
[php]try { //Mostramos el registro #1: $select = $fluent->from('usuarios')->where('id', 1)->fetch(); echo 'Nombre: ' . $select['nombre'] . ' Fecha registro: ' . $select['fecha_registro']; //Definimos nuestro arreglo con los paramétros a modificar $values = array('fecha_registro' => date("Y-m-d H:i:s")); //Ejecutamos la actualización y almacenamos el resultado en $update $update = $fluent->update('usuarios')->set($values)->where('id', 1)->execute(); //Si la actualización fue correcta se almacenara el valor de las filas que se meodificaron if ($update) { var_dump($update); echo "<p>Después de actualizar: </p>"; $select = $fluent->from('usuarios')->where('id', 1)->fetch(); echo 'Nombre: ' . $select['nombre'] . ' Fecha registro: ' . $select['fecha_registro']; } else { echo 'El nombre no fue actualizado'; } } catch (PDOException $e) { die($e->getMessage()); }[/php]