MySQL desde PHP en Raspberry

Comentamos aquí la descripción básica del manejo de MySQL desde Raspberry y vía Web con PHP. En una entrada anterior  ya describimos la instalación y manejo básico de MySQL desde el terminal de nuestra Raspi, y que presupone que tenemos el entorno Web-server + PHP instalado . Lo que vamos a comentar hoy es la forma de interactuar con MySQL desde un programa (básico) desarrollado en PHP.

Hemos querido explicar muy detalladamente el proceso a seguir, de forma y manera que lo comentado aquí pueda sernos de utilidad en cualquier programa PHP trabajando contra una BBDD gestionada vía MySQL (sea cual fuera el s.o. utilizado).

Los únicos requisitos para seguir este tutorial son:

– Tener un servidor Web activo ( Apache, Lighttpd, etc.).

– Tener el gestor MySQL instalado y operativo.

– Tener una BBDD de prueba ( “coches” en nuestro ejemplo)

Como punto de partida, y para facilidad de nuestros seguidores vamos a utilizar la misma base de datos que preparamos en la entrada dedicada a MySQL , por lo que podemos utilizar lo comentado en dichas líneas para crear la BBDD (o alguna similar que nos sirva de ejemplo). Vemos aquí los registros existentes en dicha base :

Antes de nada, crearemos un fichero PHP básico para verificar que la configuración de nuestro Raspi-SERVER opera correctamente

Como ya comentamos en la entrada para instalar nuestro servidor en Raspberry los ficheros que manejamos vía Web están ubicados en /var/www , así que todo lo que hemos de hacer es crear el fichero básico que – sin ser necesariamente nuestro fichero final – nos puede servir para comprobar el entorno instalado.

Podemos editarlo con

sudo nano /var/www/index.php

y escribimos en el mismo

<html>
<head>
<title> Raspi-Web </title>
</head>
<body>
<p>Datos internos de mi Web-SERVER</p>
<br>
<?php
phpinfo();
?>
</body>
</html>

aunque también podemos – para más comodidad – descargarlo (al final del artículo está el enlace donde se pueden descargar todos los ficheros usados en esta entrada) con lo que solo hemos de  descomprimir el fichero .zip y – en este caso – copiar index.php en el directorio /var/www/de nuestra Raspberry.

Accederemos a este primer programa desde un navegador Web poniendo

http:// x.x.x.x /

donde   x.x.x.x es la IP de nuestra Raspberry

o bien desde la propia Raspberry escribiendo entonces en el navegador

http:// 127.0.0.1

o

http:// localhost

De la información mostrada por la función phpinfo() nos fijamos, por ejemplo, en que tanto el servidor como el gestor MySQL estén operativos.

Si todo está correcto podemos continuar …

Ahora crearemos un programa HTML/PHP – también sencillo – pero que nos permita verificar que manejamos correctamente nuestra BBDD desde la página Web, bien desde nuestra Raspberry o remotamente desde nuestra red local.

Para “jugar” un poco con la programación PHP y acceder a nuestra BBDD bajo MySQL no necesitamos un gran programa, bastará con crear una estructura básica capaz de efectuar una consulta a la BBDD y devolvernos el resultado en pantalla. Vamos a ello.

¡¡¡¡ IMPORTANTE !!!! .. para que nuestro ejemplo funcione será preciso adecuar en los ficheros .PHP los datos de conexión que hayamos configurado nosotros, es decir: adecuar usuario, password, IP,nombre de BBDD, tabla, etc.

Ejemplo 1 (datos1.php) – Listado de todos los registros de la BBDD

Como primer ejemplo, vamos a analizar la estructura del código HTML/PHP preciso para realizar una consulta a la base de datos “coches” ( queda claro que esta tiene que existir y debemos conoceer sus parámetros de acceso).

Queda claro que nuestra aplicación PHP para acceder a la BBDD necesita , como mínimo, estos datos:

– nombre de la base de datos (“coches” en nuestro ejemplo)

– tabla con los datos (“miscoches” en nuestro ejemplo)

– nombre del usuario (“root” en nuestro ejemplo)

– clave del usuario (“55555” en nuestro ejemplo)

En el código de este ejemplo (datos1.php) podemos ver que este se ha subdividido en varias sub-secciones. Estas podríamos clasificarlas como :

a) Zona de DECLARACIÓN DE VARIABLES (PHP)

b) Zona de CABECERA DE PAGINA (HTML)

c) Zona de CONEXIÓN A LA BBDD (PHP)

d) Zona de CONSULTA A LA BBDD

e) Zona de VOLCADO DE DATOS A PANTALLA (HTML/PHP)

f) Zona de DESCONEXIÓN A LA BBDD (PHP)

g) Zona de PIE DE PAGINA (HTML)

La zona (a) se ha colocado antes de la cabecera (head) del código de la página, y es donde deberemos verificar los parámetros (variables PHP) utilizadas.

¡IMPORTANTE! dado que el código PHP se ejecuta en el “lado” servidor, no hay problema en que un usuario pueda husmear en – por ejemplo – nuestras claves de acceso a la BBDD. Un usuario que use desde su navegador la opción “ver el código fuente de la página” tan solo podrá ver la parte HTML del código. Las zonas PHP permanecen ocultas al mismo. Vería algo como esto:

La zona (b) define la cabecera HTML y puede contener – por ejemplo – el título de nuestra página.

La zona (c) es importante, ya que es la que ejecuta el intento de conexión contra la BBDD. Si este es satisfactoria no tendremos ningún eco en pantalla, pero en caso de que algo falle (por ejemplo el nombre, password, ruta, etc) la conexión no podrá llevarse a cabo y se mostrará un aviso en la página cargada. En este caso, y a pesar de completarse la carga de la misma, tan solo se nos mostrarán los datos HTML, sin poder añadirse los leídos en la BBDD.

Las zona (d y e) utilizan código mixto intercalado (HTML/PHP) para conformar una tabla html e ir insertando registros en la misma según se ejecuta la consilta contra la BBDD. Dependiendo de lo que el código PHP “pregunte” a la tabla (“miscoches” en nuestro ejemplo) así será el volcado obtenido.

Al ejecutarse esta consulta veremos en pantalla algo como esto:

En este primer ejemplo se crea una tabla de tan solo 2 columnas ( mostrará por tanto 2 campos de cada registro mostrado) y la  consulta efectuada se ha programado para recibir un número de registros determinado de la tabla (todos [*] en este primer ejemplo).

La zona (f) efectua la aconsejable desconexión de la base de datos una vez recabados los mismos.

La zona (g) finaliza adecuadamente la parte HTML de nuestra página.
  
Ejemplo 2 (datos2.php) – Doble consulta a la BBDD

Como segundo ejemplo hemos querido creado un código que efectúa 2 consultas diferentes a la BBDD. En ambos casos se mostrarán 3 campos por registro volcado, por lo que la tabla HTML se ha definido consecuentemente.

El código que maneja esta página puede verse aquí y – en esencia – sigue el patrón explicado anteriormente, tan solo varía en que se ejecutan 2 consultas consecutivas,  siendo única la secuencia de conexión/desconexión a la BBDD :

Ejemplo 3 (datos3.php) – Consulta por valor entero a la BBDD

Como ejemplo final, vamos a comentar la consulta a la BBDD pero, en vez de comprobar un valor de texto (como hicimos antes) preguntaremos si un valor entero es menor que otro (un precio en nuestro ejemplo). Además, en este último ejemplo pedimos en el código PHP que se nos muestren 4 campos por registro (la tabla HTML se configura para que así sea).

Lo que se nos mostrará es:

Y el código utilizado es:

Esperamos que este tutorial sirva de utilidad.

DESCARGA DE CODIGO-EJEMPLO:

Codigo_27_MySQL_PHP

 

 

  Bitcoin Currency Converter
Amount of BTC to convert
To currency:
1BTC =