Esta es la continuación de los tutoriales para manejar base de datos con PHP y PDO.
¿Qué es lo que se necesita para poder completar este tutorial?
Primero que nada es necesario haber hecho con éxito una conexión a nuestra base de datos con PDO, si aun no has completado el tutorial te invito a que pases a revisarlo antes de continuar.
Crear una conexión a MySQL con PDO
Basada en la explicación para crear una nueva instancia de PDO, vamos a hacer una función que podamos reutilizar cuantas veces queramos. Entonces el primer archivo que usamos es
Connection.simple.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php function dbConnect (){ $conn = null; $host = 'localhost'; $db = 'tutorials'; $user = 'trainer'; $pwd = 'tut212'; try { $conn = new PDO('mysql:host='.$host.';dbname='.$db, $user, $pwd); //echo 'Connected succesfully.<br>'; } catch (PDOException $e) { echo '<p>Cannot connect to database !!</p>'; exit; } return $conn; } ?> |
De este archivo tenemos que tener en cuenta 4 cosas: El host, la base de datos, el usuario y la contraseña. Esta información la vamos a crear con phpMyAdmin siguiendo los siguientes pasos(Si ya saben como crear esta información omitir los pasos e irse al código PHP):
Crear la Base de Datos (Click en las imágenes para hacer mas grande)
Crear la Tabla
Crearemos la tabla que se va a llamar ’empleado’ con 4 campos.
Crear el Usuario
Creamos al usuario con los datos que están en nuestro código
Crear las columnas
Ir a la consola de MySQL
1 2 3 | INSERT INTO empleado VALUES(null,"Dennis Ritchie","dritchie@bell.com","555-154-8745"); INSERT INTO empleado VALUES(null,"Ken Thompson","kthompson@bell.com","555-154-1234"); INSERT INTO empleado VALUES(null,"Steve Jobs","sjobs@apple.com","751-121-8125"); |
1 |
Script 1
phpParameters-01.php Una vez que ya tenemos creada nuestra base de datos y nuestra tabla poblada de información pasemos a lo mas importante que es obtener información con PDO y luego mostrarla. 1.- Primero tenemos que hacer agregar el archivo Connection.simple.php para poder hacer uso de la función dbConnect(). 2.- Crear un objecto llamado $conn, digo objeto por que al usar dbConnect() creamos una instancia de PDO. 3.- Para hacer las cosas mas limpias creamos una variable llamada $sql donde creamos nuestro query. 4.- De nuestra conexión $conn podemos acceder al método query() que recibe como parámetro una cadena. query() nos devuelve un tipo PDOStatement del cual usamos un método que se llama fetchAll(), fetchAll() nos devuelve un arreglo asociativo que recorremos posteriormente con un foreach. 5.- En nuestro foreach accedemos a nuestro arreglo y lo imprimimos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php require_once 'Connection.simple.php'; $conn = dbConnect(); // Create the query $sql = 'SELECT * FROM empleado'; // Create the query and asign the result to a variable call $result $result = $conn->query($sql); // Extract the values from $result $rows = $result->fetchAll(); // Since the values are an associative array we use foreach to extract the values from $rows foreach ($rows as $row) { echo 'id_empleado: '.$row['id_empleado'].'<br/>'; echo 'nombre: '.$row['nombre'].'<br/>'; echo 'email: '.$row['email'].'<br/>'; echo 'telefono: '.$row['telefono'].'<br/>'; echo "<hr/>"; } ?> |
Y este sería nuestro resultado:
Script 2 – Salida Heredoc y PHP inline
phpParameters-02.php
En el script dos lo que hacemos es formatear un poco mas nuestro resultado en una tabla. Primero lo hago en formato Heredoc para hacer uso del metodo <<< y despues muestro como hacerlo en formato PHP inline. Si tu pregunta es cual de estos dos es mejor? la respuesta es depende. Depende de como vayas a manejar tu contenido para mostrar la información.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | <?php require_once 'Connection.simple.php'; $result; $conn = dbConnect(); // Create the query $sql = 'SELECT * FROM empleado'; // Create the query and asign the result to a variable call $result $result = $conn->query($sql); // Extract the values from $result $rows = $result->fetchAll(); // Since the values are an associative array we use foreach to extract the values from $rows // ####### We format the result in a table using Heredoc. ####### echo <<< HTML <h3>Version Heredoc</h3> <table border="1"> <thead> <tr> <th>ID</th> <th>Nombre</th> <th>Email</th> <th>Telefono</th> </tr> </thead> <tbody> HTML; foreach ($rows as $row) { echo <<< HTML <tr> <td>$row[id_empleado]</td> <td>$row[nombre]</td> <td>$row[email]</td> <td>$row[telefono]</td> </tr> HTML; } echo '</tbody>'; echo '</table>'; ?> <!-- ##### Down here we use HTML and add inline the PHP code ####--> <h3>Version Normal o Inline</h3> <table border="1"> <thead> <tr> <th>ID</th> <th>Nombre</th> <th>Email</th> <th>Telefono</th> </tr> </thead> <tbody> <?php foreach ($rows as $row) { ?> <tr> <td><?php echo $row['id_empleado']; ?></td> <td><?php echo $row['nombre']; ?></td> <td><?php echo $row['email']; ?></td> <td><?php echo $row['telefono']; ?></td> </tr> <?php } ?> </tbody> </table> |
Y este sería nuestro resultado:
Comentarios finales
Como se puede observar el método query para extraer datos no es muy complejo, solo hay que familiarizarse con el. En el tutorial he demostrado varias cosas que a lo mejor parece confusas para algunos, si eres uno de ellos no dudes en preguntar
Código fuente
Comparto el código fuente que utilice para hacer este tutorial.