El desarrollo de bases de datos en entornos AMP (Apache, MySQL y PHP) no sólo requieren del empleo de la herramienta de gestión PhpMyAdmin. En la mayor parte de los casos, se necesitan programas PHP que permitan la instalación o creación automática de la base de datos con las características determinadas por el documentalista en su pliego de especificaciones. A continuación se explican distintos fragmentos de un archivo de instalación.
Parte1. Creación del archivo de configuración
El programa de instalación debe tener en cuenta que el nombre de usuario, contraseña, servidor de instalación y nombre de la base de datos que compondrán el archivo de configuración. Por tanto se debe crear un formulario que sea capaz de recoger dicha información, procesarla y crear un archivo independiente con los datos señalados. Éstos serán utilizados en sucesivos pasos de instalación como la creación de la base de datos y la instalación de las tablas y sus campos.
Parte2. Instalación de la base de datos
Cualquier operación en MySQL se lleva a cabo en PHP con la función "mysql_query()" que permite introducir cualquier tipo de sentencia, consulta u operación con la base de datos. En este caso, se observará que las consultas SQL coinciden con las experimentadas anteriormente en PhpMyAdmin, lo que significa que son igualmente interpretadas cuando el archivo PHP es ejecutado en el servidor Apache.
mysql_query("CREATE DATABASE nombre-base-de-datos ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci",$con);
echo "<div><li>La base de datos <b>nombre-base-de-datos</b> fue creada correctamente.</li></div>";
En el código anterior se observa la función mysql_query que contiene la consulta SQL que se ejecutará en el archivo de instalación. En color rojo se observa una variable $con que corresponde a los datos de conexión o configuración básicos para acceder a MySQL y poder ejecutar la consulta SQL. Finalmente las últimas líneas corresponden a la función "echo" empleada para imprimir en pantalla un mensaje que indique al usuario que se creó la base de datos correctamente.
Parte3. Instalación de la tabla y sus campos
Una vez creada la base de datos, se deben crear las distintas tablas de la misma. Para ello es necesario en primer lugar seleccionar la base de datos en la que se realizará la operación. En este sentido se emplea la función "mysql_select_db" que contiene el nombre de la tabla y la variable $con con los datos de conexión para acceder a MySQL. Seguidamente, MySQL interpreta que la operación que se efectuará será realizada en la base de datos ya seleccionada. A continuación se observará que se vuelve a emplear la función "mysql_query()" que siguiendo el mismo patrón que en el caso anterior, contiene la consulta SQL correspondiente a la creación de una tabla denominada "catalogue" con todos los campos especificados y sus correspondientes características. El ejemplo corresponde a un caso real de instalación de una tabla bibliográfica.
mysql_select_db("nombre-base-de-datos", $con);
mysql_query("CREATE TABLE catalogue (
id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id),
idadmin VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
date_entry VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
date_update VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
uri VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
typedocid VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
typedoc VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
subtypedoc VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
signature_decimal VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
signature_surname VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
signature_head VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
title VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
title_alf VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
subtitle VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,othertitle VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
uniformtitle VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
uniformtitle_alf VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
translatetitle VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
language VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
edition VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
authorities TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
authorities_alf VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawtype VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawdate VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawcode VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawcountry VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawregion VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawcity VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
periodicity VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
pubplace VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
pubdate VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
date1 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
date2 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
serie VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
nserie VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
physical VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
npages VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
ncms VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
summary TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
fulltext1 MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
fulltext2 MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
fulltext3 MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
fulltext4 MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
fulltext5 MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
notes TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
rights VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
rightscases VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimalid1 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimalnumber1 VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimaltext1 VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimalid2 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimalnumber2 VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimaltext2 VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_general_ci,
categoryid VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
category1 VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
category2 VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
category3 VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
category4 VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
bagtags TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
edocument VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
urlresources TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
reference TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
cite VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationid1 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtype1 VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationprop1 VARCHAR(150) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtitle1 VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationid2 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtype2 VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationprop2 VARCHAR(150) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtitle2 VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationid3 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtype3 VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationprop3 VARCHAR(150) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtitle3 VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_general_ci,
indexer LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
FULLTEXT(indexer)
) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci",$con);
echo "<div><li>La tabla <b>catalogue</b> fue creada correctamente.</li></div>";
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.