jairogarcíarincón
Uno de los usos más comunes de un desarrollo web en PHP es crear páginas que permitan consultar y/o editar información almacenada en bases de datos.
Si bien PHP soporta diferentes tipos de bases de datos, tales como SQLite, Oracle, SQL Server, PostgreSQL, MySQL y muchas otras, solo nos centraremos en MySQL, un sistema gestor de bases de datos relacionales de código abierto.
MySQL incorpora varios motores de almacenamiento, siendo los más conocidos:
- MyISAM: el motor por defecto, es muy rápido pero no utiliza integridad referencial, una propiedad según la cual la clave externa de una tabla de referencia siempre debe aludir a una fila válida de la tabla a la que se haga referencia ni tablas transacionales (para poder ejecutar varias operaciones sobre la tabla o base de datos en una única operación o transacción).
- InnoDB: es ma´s lento pero soporta tanto las tablas transaccionales como la integridad referencial.
No obstante, desde la versión 5 de PHP y para evitar tener que utilizar extensiones específicas para cada base de datos, se introdujo una extensión que permitiera acceder a cualquier tipo de base de datos utilizando la misma sintaxis (incluso utilizando varios tipos de bases de datos al mismo tiempo).
Esta extensión se conoce como PDO (Objetos de datos de PHP o PHP Data Object ) y, si bien es una versión ligera del controlador de PDO específico de cada tipo de base de datos, en general soporta las funciones comunes a utilizar en el desarrollo de una aplicación web.
Para el acceso a las funcionalidades de esta PDO; es necesario introducirse en el paradigma de la programación orientada a objetos, que introduciremos en un capítulo posterior antes de utilizar PDO.
Si por requerimientos de la aplicación necesitáramos toda la potencia de cada tipo de extensión de base de datos, deberíamos utilizar su extensión nativa completa, que en el caso de MySQL es MySQLi.
Esta extensión nativa completa utiliza los paradigmas de la programación estructurada y procedimental, que son los que venimos utilizando durante todo el curso y según los cuales la programación debe estar orientada a mejorar la claridad, calidad y tiempo de desarrollo mediante el uso únicamente de sub-rutinas (funciones o procedimientos) y tres estructuras básicas: secuencia, estructuras de control (if y switch) y estructuras de repetición (bucles for y while).
Para finalizar, previo al uso de bases de datos, debemos introducir cómo instalar y configurar una base de datos mediante MySQL. Para ello, antes de continuar realizaremos, de forma completa, el Curso de Instalación y puesta en marcha de un entorno de desarrollo con Amazon Web Services que incluye, entre otras cosas, la instalación y configuración de una base de datos MySQL así como un programa de administración para la misma, MySQL Workbench.
Adicionalmente, puedes utilizar como interfaz web de administración de tu base de datos la librería escrita en php phpMyAdmin, que en el caso de XAMPP está instalada por defecto y puedes acceder a ella desde http://localhost/phpmyadmin o que puedes instalar fácilmente en tu servidor Ubuntu mediante las siguientes instrucciones (extraídas de un tutorial de Digital Ocean):
- Accede a la consola o termina de tu servidor Linux mediante SSH o telnet.
- Ejecuta el comando sudo apt update para actualizar todas los paquetes.
- Instala phpmyadmin y las librerías asociadas mediante el comando sudo apt install phpmyadmin php-mbstring php-gettext.
- Como opciones, selecciona apache2, db-config-common y cuando te pida la password utiliza la misma de instalación root de MySQL.
- Al finalizar y para poder acceder a través de la dirección http://localhost/phpmyadmin, o bien creas un usuario MySQL específico o modificas el usuario root para que permita autenticarse por password (por defecto es por socket).
- Accede a la consola del terminal y ejecuta sudo mysql.
- Introduce la password.
- Ejecuta SELECT user,authentication_string,plugin,host FROM mysql.user; para comprobar que root está configurado para autenticación via socket.
- Ejecuta ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; para modificarlo (siendo password la introducida en la instalación de MySQL).
- Ejecuta MYSQL FLUSH PRIVILEGES; para renovar los privilegios de los usuarios.
Nota: Con estas instrucciones debería funcionar, pero si no fuera así, una posible solución sería acceder a modificar el archivo apache2.conf mediante la instrucción sudo nano /etc/apache2/apache2.conf, añadir la línea Include /etc/phpmyadmin/apache.conf, guardar, salir y reiniciar apache mediante la instrucción /etc/init.d/apache2 restart.
Fuentes para la definiciones: Wikipedia y php.net
Publicado el 05 de Febrero de 2025
phpmysqlobjetos