Conectar a una Base de Datos MySQL desde PHP

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.

https://gist.github.com/OscarAbadFolgueira/f4dbb82dc1905cf345b278de7ab0e46c

A partir de aquí solo queda probar y probar…

Saludos y hasta la próxima!

Crear una base de datos MySQL desde consola

Si, ya se que seguramente creéis las bases de datos desde una herramienta como phpMyAdmin pero es posible que en alguna ocasión necesitemos, por el motivo que sea, crear una base de datos desde la consola de comandos. Además, es mucho más divertido y entretenido.

Pues bien, en este tutorial voy a resumir los pasos a dar para crear una base de datos muy sencilla desde vuestra consola de comandos independientemente del sistema operativo que estemos utilizando.

Antes de comenzar asumo que tenemos instalado mysql bien en un ordenador local o en un servidor remoto.

Acceder a mysql desde la consola.

Lo primero que tenemos que hacer para poder ejecutar comandos es ejecutar el programa ‘mysql‘ que si ya tenéis instalado en el ordenador o servidor, bastaría con ejecutar desde la consola el siguiente comando:

$mysql -u usuario -p

Es posible que no tengáis contraseña si estáis utilizando algún paquete como XAMPP o similar. En ese caso bastaría con poner el siguiente comando:

$mysql -u root

Si al ejecutar el comando mysql te un error de que no encuentra el programa, tendrás que ejecutarlo directamente en la ruta en la que está ubicado o añadir esa ruta para que podamos ejecutarlo desde cualquier directorio de nuestro disco.

Si estás utilizando XAMPP en un ordenador MAC, la ruta es: /Applications/XAMPP/xamppfiles/bin/mysql

Pero cada sistema operativo es diferente y si no utilizas XAMPP tendrás que buscar la ubicación de mysql en tu disco.

Bien, ahora ya podemos ejecutar comandos mysql ya que tendrás a la vista algo similar a lo siguiente:

Crear una nueva base de datos.

Ahora llega el momento de crear una nueva base de datos mysql y a estas altura ya debemos tener claro el nombre que le vamos a dar a nuestra nueva base de datos. Para este ejemplo yo voy a crear una base de datos llamada «alumnos«. Original, ¿verdad?

No nos entretenemos más y vamos a lo que vamos.

Para crear la base de datos «alumnos» introducimos el siguiente comando:

CREATE DATABASE alumnos;

Como se puede ver en la siguiente captura:

Si, ya se que no es gran cosa lo que nos dice pero es suficiente, nos basta con saber que hemos creado la base de datos correctamente.

Pero claro, no podemos dejarlo aquí ¿verdad? habrá que hacer algo más para que sea más interesante este artículo. Pues nada, no os preocupéis que ahora vamos a crear una tabla para almacenar nuestros datos.

Seleccionar la base de datos a usar.

Esto es algo sencillo pero necesario.

Para que mysql sepa a qué base de datos nos vamos a referir cuando introduzcamos los comandos, debemos indicárselo mediante el comando:

USE tabla

Por consiguiente, para el ejemplo que nos ocupa introducimos el siguiente comando para usar la base de datos «alumnos»:

USE alumnos;

Crear una tabla en la base de datos.

Como digo, ahora vamos a crear una tabla porque sin tablas, la base de datos no nos sirve de mucho la verdad.

Para este ejemplo voy a crear una tabla muy sencilla simplemente para que veáis como funciona el asunto. Mi tabla alumnos sólo tendrá dos campos: Nombre y edad. No quiero liarlo mucho y prefiero que quede bastante claro.

Entonces, siguiendo un modelo sencillo, estos serían los campos que voy a crear en la tabla:

nombre  –>   VARCHAR(30)

edad  –>  INT

Ahora que ya lo tenemos claro vamos a crear la tabla con el comando «CREATE TABLE» de la siguiente forma:

CREATE TABLE alumnos (nombre VARCHAR(30), edad INT);

No me voy a parar a explicar los tipos de datos de SQL pero si tenéis especial interés sobre esto, me podéis mandar un mensaje y lo valoraré.

Bueno, vamos a ver qué nos muestra la consola cuando introducimos en comando anterior:

Como siempre tan escueto pero nos sirve, nos complace ver que la tabla se ha creado correctamente.

Comprobar la tabla creada.

Este paso no es necesario pero si aconsejable ya que salimos de dudas en cuanto a que se ha creado nuestra tabla, si es que teníamos alguna duda.

Para comprobar los campos de la tabla que acabamos de crear podemos utilizar el comando DESCRIBE con el nombre de la tabla que queremos comprobar. Por lo tanto, para nuestro ejemplo ejecutamos el comando

DESCRIBE alumnos;

El resultado de este comando será el siguiente:

Perfecto, la tabla aparece por lo que está creada y con los campos que queríamos.

Añadir algunos registros.

Para terminar vamos a ver cómo podemos añadir contenido a nuestra base de datos desde consola.

Antes de ejecutar los comandos, pongo a continuación los datos que voy a introducir:

Jose Sanchez       22

Alberto Jurado    19

Carlos Martin      20

Pues bien, nos ponemos manos a la obra.

Para añadir registros a la base de datos usaremos el comando INSERT INTO seguido del nombre de la tabla y posteriormente VALUES seguido de los valores que queremos incluir.

Sin más, este sería el comando para introducir el primer registro que os he indicado hace un momento:

INSERT INTO alumnos VALUES ('Jose Sanchez', 22);

Que nos muestra:

Perfecto, pues ya que estamos, introducimos los otros dos registros.

INSERT INTO alumnos VALUES ('Alberto Jurado', 19);
INSERT INTO alumnos VALUES ('Carlos Martín', 20);

Comprobar los datos.

Y para terminar simplemente vamos a comprobar que la base de datos o mejor dicho, la tabla alumnos tiene los datos que acabamos de introducir.

Para mostrar los datos de una tabla podemos usar el comando SELECT FROM para que  nos muestre todos los registros (*) de la tabla:

SELECT * FROM alumnos;

Este comando nos debería mostrar lo siguiente:

Pues bien, eso es todo por ahora. Espero que os haya gustado, servido de utilidad.

Ya sabéis, cualquier cosa, me mandáis un mensaje y listo!

Has la próxima!

Ir al contenido