Hola
Vengo con mi primer post (espero no sea el último) :ojitos:
Cuando aprendí PHP, lo hice leyendo libros, y entre uno de ellos, se mostraba el uso de PDO como la mejor manera de hacer consultas a una base de datos, ya que ofrecía más seguridad que la manera tradicional
(mysql_connect(...), etc...).
Conectando a una base de datos<?php
//Base de datos
$db_data = array (1=>"localhost", 2=>"root", 3=>"xxxxx", 4=>"furnis", 5=>"3306");
$PDO = new PDO("mysql:host=".$db_data[1].";port=".$db_data[5].";dbname=".$db_data[4], $db_data[2], $db_data[3]);
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
function closedb() {
try {
unset($PDO);
echo "\nConexión PDO cerrada.";
} catch (PDOException $ex) {
echo "Error al cerrar conexión." .$ex->getMessage();
}
}
?>
Paso a paso:1º Cargamos en un array los datos de conexión que vamos a necesitar (host, usuario, pass, dbase y puerto).
2º Creamos un nuevo PDO y le insertamos los datos que ingresamos anteriormente.
3º 'setAttribute' para que devuelva un mensaje de error en caso de excepción.
4º Esto ya viene por gusto propio, es una función que cierra la conexión. Haciendo así evitamos poner esas 6 o 7 líneas de código cada vez que queremos cerrar la conexión.
¿Usar closedb()?Cada vez que terminemos de hacer consultas, escribimos en una línea 'closedb();' y listo ;D
¿Es necesario hacer un try cada vez que cierro la conexión?No para nada, fue cosa mía, tal vez digan 'consume recursos hacer eso' (¡?!) pero bueno, simplemente pueden tipear 'unset($PDO);' y la conexión se habrá cerrado. También podemos utilizar '$PDO = null;' va a tu gusto :cz:
Consultas e impresión de resultadosSi creiste que cambió mucho de la forma tradicional, estás equivocado/a, es casi totalmente igual
He hecho un código de ejemplo que imprime un furni y su valor a su lado.
<?php
require('mysql_pdo.php');
try {
$consulta = $PDO->prepare("SELECT furni, precio FROM furnis");
$consulta->execute();
while($fila = $consulta->fetch())
{
echo "furni: ".$fila[0]." valor: ".$fila[1]."<br>";
}
} catch (PDOException $e) {
echo "Error al ejecutar la consulta. PDO error:" .$e->getMessage();
}
closedb();
?>
Paso a paso:1º Llamamos al archivo
mysql_pdo.php que es en este caso el archivo que conecta a la BD (el mostrado anteriormente).
2º Hacemos un try, dentro del mismo preparamos la consulta a realizar.
3º Luego la ejecutamos
(ya teníamos la consulta guardada en la línea anterior, ejecuta esa consulta)4º OPCIONAL: Utilizamos un while para imprimir los resultados de esa consulta en la página.
5º Usamos 'closedb();' para cerrar la conexión.
Aquí he utilizado un try, y recomendaría dejarlo ya que puede haber una excepción o cosas por el estilo en el momento de imprimir los resultados.
Espero que les sea de utilidad y espero poder aportar más a la sección de programación :8D:
Saludos