Hoy en día es muy importante por no decir imprescindible saber gestionar datos de una Base de Datos desde PHP.
Claro que haremos muchas cosas que no tendrán que trabajar contra una base de datos pero seguro que estáis de acuerdo conmigo que hoy por hoy, la gestión de los datos es de suma importancia. Debemos almacenar, borrar, gestionar datos en una base de datos.
Pues bien, en el tutorial de hoy vamos a ver de una forma sencilla cómo conectarnos a una base de datos desde PHP.
¿Qué vamos a hacer?
En este tutorial vamos a conectarnos con una base de datos que ya creamos en el tutorial Crear una Base de Datos MySQL desde consola con PHP.
Lo vamos a hacer por pasos para que veamos las diferentes partes del proceso de conexión con la base de datos y además realizaremos una consulta sencilla para cerciorarnos de que todo ha salido bien.
Como digo, voy a utilizar la base de datos Alumnos que ya creamos en el tutorial que os acabo de mencionar y que está en local pero vosotros podéis hacerlo con cualquier otra base de datos.
Pues sin mas, pongámonos manos a la obra…
¿Qué necesitamos?
Para poder realizar las prácticas de este tutorial necesitamos, en primer lugar, una base de datos. En este caso, como he dicho, voy a utilizar la base de datos alumnos que ya tengo creada en local pero vosotros podéis utilizar cualquier otra.
También vamos a necesitar el host o url de nuestro servidor de base de datos. En mi caso es localhost porque lo tengo en local.
Necesitamos también un nombre de usuario con permisos en la base de datos y la contraseña del mismo. En mi caso el usuario es root y no tiene contraseña.
Como vamos a hacerlo poco a poco para que se entienda bien, vamos a comenzar creando las variables que contendrán los datos que acabo de mencionar.
Creando las variables con los datos necesarios
Pues eso, lo primero que vamos a hacer es crear las variables para almacenar los datos de la base de datos que utilizaremos más adelante. También podemos hacerlo directamente sin utilizar variables pero personalmente creo que mucho más limpio.
Las variables que crearemos serán las siguientes:
$usuario = "root"; $contrasena = "tu_contraseña"; // en mi caso tengo contraseña pero en casa caso introducidla aquí. $servidor = "localhost"; $basededatos = "alumnos";
Creo que no hay duda sobre a lo que corresponde cada una de ellas, verdad?
Crear la conexión con el servidor de base de datos con mysqli_connect()
Ahora vamos a crear la conexión con el servidor de la base de datos mediante la función mysqli_connect() y los datos o variables que hemos creado hace un momento. Para ello crearemos una variable $conexion que contendrá la conexión.
$conexion = mysqli_connect( $servidor, $usuario, "" );
Para explicar un poco la función mysqli_connect() podéis ver que debemos indicarle el servidor, el usuario de la base de datos y la contraseña de ese usuario.
En mi caso he introducido «» para la contraseña pero en vuestro caso, si tenéis definida una contraseña para ese usuario de la base de datos, deberíais introducir la contraseña en la variable $contrasena y luego indicar la variable como tercer parámetro en la llamada a la función mysqli_connect()
Si ejecutáis el código que tenemos hasta ahora no deberíais ver nada y eso es bueno porque no estará dando ningún error.
Pero como no podemos estar seguro de que la conexión con el servidor de la base de datos sea correcta, vamos a añadir un poco de código para que muestre un mensaje en el caso de que la conexión con la base de datos no se haya podido realizar. De esta forma:
$conexion = mysqli_connect( $servidor, $usuario, "" ) or die ("No se ha podido conectar al servidor de Base de datos");
Resumiendo lo que hemos hecho hasta ahora: Hemos creado las variables con los datos que necesitaremos y posteriormente hemos creado una variable y le hemos asignado la conexión con el servidor de base de datos.
La conexión ya estaría hecha pero claro, no nos vamos a quedar aquí…
Conexión a la base de datos
Ahora que ya hemos conectado con el servidor de Base de Datos lo que tenemos que hacer es seleccionar la base de datos que vamos a utilizar. Os recuerdo que en mi caso en la base de datos alumnos que ya la hemos guardado en la variable $basededatos.
Para seleccionar la base de datos a utilizar, usaremos la función mysqli_select_db() a la que le indicaremos 2 parámetros:el objeto de conexión a la base de datos que hemos creado hace un momento ($conexion) y el nombre de la base de datos ($basededatos) y .
Por lo tanto:
$db = mysqli_select_db( $conexion, $basededatos );
Si lo ejecutamos y no nos da ningún error podemos estar de enhorabuena pero, como hemos hecho antes con la conexión al servidor de base de datos, vamos a añadir también aquí la opción para que nos devuelva un mensaje de error en el caso de que algo salga mal.
$db = mysqli_select_db( $conexion, $basededatos ) or die ( "Upps! Pues va a ser que no se ha podido conectar a la base de datos" );
De momento todo va bien pero si queréis, podéis cambiar el nombre de la base de datos por uno que no exista y así ver que nos muestre el mensaje de error como en la siguiente captura:
Es una forma de asegurarnos, verdad?
Hacer una consulta a la base de datos
Aunque ya hemos cumplido con el objetivo de este tutorial que no es otro que conectar con una base de datos MySQL con PHP, vamos a aprovechar para realizar una consulta a la misma y así ya nos vamos soltando con este asunto.
Para hacer una consulta a una base de datos haremos eso, una consulta y como ya sabréis algo de SQL no me voy a meter de momento en esos derroteros.
Entonces, para realizar una consulta utilizaremos la función mysqli_query() en la que indicaremos la consulta que queremos hacer.
Para hacerlo un poco más limpio y ordenado vamos a guardar la consulta en una variable y así la podremos reutilizar sin problemas.
Sin más, creamos una variable y le asignamos la consulta a realizar:
$consulta = "SELECT * FROM alumnos";
La consulta anterior nos devolverá todos los registro de la tabla «alumnos». Si, la tabla se llama igual que la base de datos, que no os confunda esto…
Pero aún no hemos realizado la consulta, ahora debemos utilizar la función mysqli_query() de la siguiente forma:
$resultado = mysqli_query( $conexion, $consulta );
Como hemos venido haciendo, vamos a añadir un poco más de código a lo anterior para que nos muestre un mensaje de error si algo a ido mal:
$resultado = mysqli_query( $conexion, $consulta ) or die ( "Algo ha ido mal en la consulta a la base de datos");
Si ejecutamos el código que tenemos hasta ahora todo funciona bien pero vamos a terminar mostrando los datos porque si no lo vemos no nos lo creemos, verdad?
Mostrar los datos de la consulta a la base de datos
Para mostrar los datos de la consulta que hemos realizado lo vamos a hacer muy sencillo pero os animo a que probéis más con este asunto porque es muy interesante y entretenido.
Como lo vamos a mostrar en formato de tabla, en primer lugar creamos la parte de creación de la tabla y el encabezado del mismo:
echo "<table borde='2'>"; echo "<tr>"; echo "<th>Nombre</th>"; echo "<th>Edad</th>"; echo "</tr>";
Bien, ahora utilizamos un While mientras existan registros y dentro del bucle creamos las filas de la tabla:
while ($columna = mysqli_fetch_array( $resultado )) { echo "<tr>"; echo "<td>" . $columna['nombre'] . "</td><td>" . $columna['edad'] . "</td>"; echo "</tr>"; }
Y por supuesto cerramos la tabla:
echo "</table>";
Y ya estaría.
Si ejecutamos el código que tenemos, el resultado debería ser algo similar a lo siguiente:
Cerrar la conexión con la base de datos
Como ya hemos terminado y no vamos a necesitar más la conexión a la base de datos, no está de más cerrar esta conexión y liberarla.
Para cerrar la conexión a la base de datos utilizamos la función mysqli_close() y le pasaremos el parámetro de la conexión ($conexion) así:
mysqli_close( $conexion );
Fácil, verdad?
Pues ya está, ya hemos terminado con el tutorial de hoy.
El código
A continuación pongo el código completo de este ejemplo que hemos hecho poco a poco.
A partir de aquí solo queda probar y probar…
Saludos y hasta la próxima!
funciona todo perfecto pero por alguna razón no se pueden hacer consultas cuando estoy dentro de un hosting
Hola, Alex.
Esto puede ser posible por limitaciones del hosting pero lo mejor es que consultes con ellos por si fuera así.
Saludo y mucho ánimo!
Muchas gracias, un manual muy práctico.
Me alegro que sea de utilidad.
Saludos.
Hola, mi pregunta es como puedo conectar con una base de datos que se encuentra en otro hosting. ¿Qué debo poner en lugar de «localhost»?
Hola Nick.
En esta caso deberías revisar las especificaciones de ese hostig porque seguramente tengas que indicar la ip y el puerto aunque también te digo que algunos hostings tienen «capada» esta utilidad para poder conectarse desde «fuera». Lo mejor es que consultes con ellos para estar seguro.
Saludos y mucho ánimo!
muchas gracias por el articulo, me ha venido bastante bien 😀
Perfecto Carlos.
Mucho ánimo!
hola use tu explicacion para saber si se conectaba mi sitio php a la base de datos y no se conecta. ahora que debo hacer para solucionarlo?
Gracias me ayudo mucho c:
Hola Oscar
Muchas gracias, muy bueno y efectivo.
Podrás por favor realizar un ejemplo de insertar, actualizar y borrar un registro de una tabla MySQL desde un archivo PHP?
Gracias !
Sencillo, conciso y claro.
1000 gracias por compartir tus experiencias y conocimientos, saludos desde México.
Excelente explicación!
Gracias por este valioso aporte.
excelente tengo 8 años me gusta programacion
Excelente… gracias porl el aporte
Buen post voy a ponerlo en práctica. Gracias.