Poniendo MySQL en UTF-8

La codificación de contenidos cuando se desarrolla una aplicación que requiere el uso de bases de datos puede llegar a convertirse en una de las peores pesadillas de un desarrollador, sobre todo si es algo en lo que no has pensado desde las primeras fases iniciales previas al inicio del desarrollo. Motores de bases de datos tan populares y difundidos como MySQL pueden dar muchísimos problemas a la hora de grabar datos, de recuperarlos y de renderizarlos en vistas, si no tenemos en cuenta la codificación. La codificación de datos más adecuada en la mayor parte de los casos es UTF-8, ya que implementa todos los caracteres que se puedan usar en cualquier idioma, así como gran cantidad de guarismos que, sin pertenecer a un idioma específico, son de uso relativamente común, como signos matemáticos u otros. Para implementar otros caracteres extremadamente especiales hay otras codificaciones adecuadas, pero eso es tan poco habitual que ni lo vamos a comentar. El problema es que, cuando se crea una base de datos, tabla o campo, el motor de MySQL (dependiendo de la versión, y del entorno de desarrollo) tiende a emplear alguna codificación de tipo latin-n-xxxxxxxx o similar. De momento, parece irrelevante, …

Seguir leyendo

Uniendo tablas MySQL (I). Introducción.

Iniciamos aquí una pequeña serie de artículos dedicados a las consultas MySQL que afectan a dos o más tablas. Cuando, en una consulta, necesitamos recurrir a dos tablas, significa que ambas están relacionadas entre sí, en una relación de 1-m o de m-1. Cuando se recurre a consultas que implican más de dos tablas, puede tratarse de que alguna de ellas esté relacionada con las demás en relaciones del tipo mencionado, o bien que dos tablas estén relacionadas entre sí, en una relación de tipo m-n, a través de una tercera tabla intermedia. Además, podemos encontrarnos con la necesidad de construir consultas que impliquen relaciones “especiales”, bajo determinadas circunstancias, como veremos en esta serie. Procuraremos analizar las sintaxis adecuadas en los casos que se nos presenten, de modo que, cuando tengas necesidad de consultas de este tipo, puedas hacerlas del modo más óptimo posible. En estos artículos presentaremos la sintaxis MySQL. Esto significa que podría haber algunas diferencias si tu motor de base de datos SQL es otro (SQL Server, SQLite, etc). Optar por MySQL ha sido una decisión lógica, teniendo en cuenta que es el motor de bases de datos relacionales más empleado en Internet, con mucha diferencia y, …

Seguir leyendo

Uniendo tablas MySQL (III). Autocombinaciones.

Siguiendo con el tema de uniones de tablas, en este artículo vamos a ver un tema que, en el día a día del desarrollo de aplicaciones, se da con más frecuencia de la que parece: las autocombinaciones. En los artículos anteriores hemos conocido distintas formas de combinar datos de dos tablas, para obtener el resultado deseado. Aquí vamos a aprender como combinar datos de una tabla con datos procedentes de la misma tabla, que mantienen una relación estructural. Cómo siempre, lo veremos desarrollando un ejemplo, que podremos extrapolar a cualquier otra necesidad que nos surja en este terreno.

Vistas en MySQL

En este artículo vamos a conocer qué son las vistas en MySQL y como pueden ayudarnos a hacer que nuestra aplicación web con base de datos funcione más rápido, mejorando la experiencia del usuario. Por decirlo brevemente, las vistas constituyen una herramienta muy apta para acelerar las consultas de selección (SELECT), es decir, aquellas que recuperan datos de una o más tablas. Están disponibles, con ligeras variaciones de sintaxis, en todas las implementaciones de SQL, aunque nosotros, por razones obvias, vamos a analizar su funcionamiento en MySQL.

El plugin DataTables (I). Qué es y cómo obtenerlo

A menudo nos encontramos conque tenemos un dataset, obtenido, por ejemplo, de una base de datos o cualquier otro proceso, con datos comerciales de un cliente, o facturas emitidas, o pedidos pendientes, etc. y tenemos que mostrarlo en la página que vamos a renderizar. El resultado debe ser una tabla con todos los datos, organizados en filas y columnas. Además, deben ser ordenables por las columnas que decidamos, deben admitir búsquedas de datos en tiempo real y, si hay demasiados resultados, deberían aparecer paginados. Todo esto y mucho más podemos hacerlo por programación, escribiendo nuestro propio código que realice cada una de las funciones necesarias. Sin embargo, es mucho más sencillo cuando existe ya un plugin, probado, que funciona bien, rápido y eficiente, y podemos configurarlo en cada caso según necesitemos. Este es DataTables.

El plugin DataTables (V). Consumiendo datos externos.

Tenemos ya cierta soltura en el uso del plugin DataTables. Sin embargo, es mucho lo que aún nos queda por aprender para sacarle realmente partido a esta magnífica herramienta. En los artículos anteriores hemos estado sentando las bases de lo que se puede hacer con este plugin, pero ahora las apuestas han subido. Ya no jugamos con cerillas, sino emocionantes partidas en las ligas de campeones. En este artículo vamos a aprender a obtener los datos que queremos mostrar de una forma dinámica. Ya no estarán grabados a fuego en el código, sino que se nos generará un dataset a partir de una fuente externa, según le pidamos más y más al plugin. También aprenderemos las bases de cómo se comunica el plugin con el script secundario, en uno y otro sentido. Con lo que aprendamos en este artículo estaremos listos para pasar al siguiente nivel.

PHP-TUT-02 Montando los servidores

Ya sabemos que las páginas dinámicas se programan empleando tecnologías de servidor. Para probar y analizar los ejercicios de esta serie de artículos, así cómo otros recursos PHP que publicaremos, o programar tus propias páginas dinámicas, necesitas tener un servidor de red que te proporcione los servicios necesarios. Por supuesto puedes buscar, si lo deseas, un servidor en Internet. Pero los que hay gratuitos no suelen tener las prestaciones que vamos a necesitar. Por otra parte, si cada nuevo código que vamos a probar debe ser transferido a un servidor remoto, vas a perder un tiempo precioso. Por estas y otras razones lo ideal es que tengas el servidor en tu casa. Esto tiene la ventaja añadida de que podrás implementar los servicios que necesites y configurarlos cómo te convenga en cada caso.

PHP-TUT-22 Bases de datos SQL (I)

Empezamos en este artículo el estudio de la creación y gestión de bases de datos. Las bases de datos, (BBDD) son estructuras donde se almacena información siguiendo unas pautas de disposición y ordenación para el posterior procesado de los datos. Es una definición tan buena como cualquier otra. Seguramente, si lees cincuenta libros al respecto, encuentres otras tantas definiciones distintas, pero todas coincidirán en lo esencial. Como sistema de almacenamiento de datos, las BBDD son mucho más eficientes que los archivos de texto que ya conocemos. Y esto por varias razones pero, principalmente, porque nos permiten un acceso directo al dato que necesitamos sin que sea preciso recorrer todo un fichero para encontrarlo.

PHP-TUT-23 Bases de datos SQL (II)

En el artículo anterior hemos aprendido a crear una BBDD y las tablas que la forman. Ahora llega el momento de introducir datos.En este artículo vamos a conocer las consultas SQL más empleadas habitualmente para la inserción de datos, la modificación y eliminación de los mismos y, por supuesto, la consulta de estos, según los criterios que podamos necesitar en cada caso.

Uso de MySQL con PDO – PHP (I). Conectar, leer y escribir.

En los tutoriales de PHP hemos aprendido bastante sobre el uso teórico del lenguaje SQL. En este artículo vamos a aprender a manejar el motor más popular, MySQL, desde PHP. Lo bueno de esto es que lo que aquí aprendamos nos servirá, con muy pocos cambios, para manejar otros motores de base de datos, si llegara el caso. PHP incluye la extensión mysqli para conectar con el motor de MySQL y enviar consultas. La extensión tradicional, mysql, fue declarada obsoleta en PHP 5.4 y ha sido eliminada en PHP 7.0, por lo que no hablaremos aquí de ella. La extensión mysqli puede ser manejada según el estilo procedimental, o mediante POO. Dado que el POO es más robusto, fiable y acorde con los cánones de programación actuales, es en esta modalidad en la que vamos a centrarnos en este artículo.