Ejemplo de base de datos
Este ejemplo ilustra el uso básico del módulo de Perl DBI. La base de datos contiene registros de las personas que deseen participar en un correo electrónico basado en «servicio de pen-pal". Suscriptores facilitar su dirección de correo electrónico, información personal limitado y un conjunto de intereses escogidos de un conjunto predefinido de alrededor de 100 temas posibles. Búsquedas se pueden realizar a los abonados que comparten algunos intereses comunes, y satisfacer otras limitaciones. La base de datos sólo tiene una mesa, las filas de caracterizar los abonados a este "servicio de E-Pal. Cada abonado tiene una dirección de correo electrónico (que se supone por la simplicidad para adaptarse en un campo de 32 caracteres), lo que debe ser único, y sirve como la clave principal. Suscriptores normalmente se identifican como hombres o mujeres, pero no pueden optar por especificar su género (en cuyo caso se clasifican como "e-personas '). Los suscriptores pueden especificar restricciones en el tipo de persona con la que deseen comunicarse (especificando las mujeres, hombres, e-o cualquier otra persona). Para simplificar, los intereses de un suscriptor se representan con cinco campos enteros separados. La tabla tiene la siguiente definición: CREATE TABLE EPAL (email varchar (32) NOT NULL, tipo varchar (8) NOT NULL, quiere varchar (8) NOT NULL, interest1 número (4), interest2 número (4), interest3 número (4), interest4 número (4 ), interest5 número (4), CONSTRAINT id_pkey PRIMARY KEY (correo electrónico), CONSTRAINT type_check CHECK (tipo IN ( 'MALE', 'Mujer', ') EPERSON'), CHECK want_check restricción (quiere en ( 'MALE', 'Mujer ',' EPERSON ',' Cualquiera '))); Limitaciones El "chequeo" no son particularmente importantes y se puede omitir si la base de datos que utiliza no es compatible con estas limitaciones, el código del programa, esencialmente, duplica los controles efectuados. El programa de ejemplo es un dato independiente Perl programa de lectura del teclado y que trabajan directamente con la base de datos. Las órdenes pueden ser dadas al programa para agregar registros a la base de datos o realizar búsquedas. El código podría ser adaptado para formar un script CGI que los datos aceptados entró en formularios HTML, lo que daría lugar a un Web-e basados en el servicio Pal - algo bastante más útil que esta versión independiente. Introducción de datos muy similares son necesarios para la adición de registro y búsquedas. Los usuarios deben escribir su propio «tipo», «tipo» de la persona con la que deseen comunicarse, y deben seleccionar a cinco los intereses de la lista de los intereses predefinidos, si un registro se añade el ingreso de datos debe incluir también un e-mail dirección. Los criterios para un partido de éxito en la búsqueda son: El valor de «tipo» en el expediente cumple los "quiere" requisito de una solicitud - con el reemplazo que la petición "quieren = cualquier 'coincide con cualquier valor en el campo de tipo. El «tipo» se especifica en la solicitud de búsqueda cumpla el «querer» requisito que figura en el registro - de nuevo con "cualquier" ser igualada por todos los tipos de solicitudes posible. Los dos grupos de intereses tienen un no-cero de intersección (intereses están representados en forma de números en el rango de 1-100, que no son necesariamente ordenadas). Estos criterios coincidentes son difíciles de expresar como una condición de selección de SQL, es más fácil para el programa para recuperar todos los registros y aplicar los criterios de programación. El programa utiliza una serie de variables globales, y cada subrutina tiene variables locales. El tamaño algo mayor del programa aumenta el riesgo de utilización de los errores resultantes de una declaración implícita de las variables, o el uso de variables sin inicializar. Merece la pena cambiar el modo de la intérprete de Perl para que todas las variables deben ser declaradas. Se especifica el uso estricto de la directiva 'en el inicio del programa hace de este cambio. La principal línea invoca la rutina de inicialización que se crea una conexión de base de datos y crea la tabla. La función principal tendrá entonces un "menú seleccione" manipulación bucle comandos introducidos por el usuario. Los comandos se manejan son 'Añadir', 'search', 'list' (lista de contenido de la lista de interés) y 'salir'. El código es: inicializar, mientras que (1) ($ cmd mi impresión; "Enter comandos (añadir, buscar, lista (intereses), dejar de fumar):"; $ cmd = La rutina de inicialización de hash que crea un tema de interés para los mapas de número de identificación. Los usuarios deben escribir sus intereses y que se verifiquen, aquí, el hash sirve como un sistema rápido de búsqueda de la lista original. Las demás tareas de la rutina de inicialización son la apertura de una conexión de base de datos y preparación de la consulta tanto de una simple selección de SQL y una instrucción SQL más elaborada con parámetros que se utilizarán para introducir registros. La instrucción de inserción requiere ocho valores a ligar - dirección de correo electrónico, 'tipo', 'quiero' y cinco identificadores de interés. sub inicializar (my ($ id, $ de interés), $ id = 0; foreach $ interés (@ interestlist) ($ interés interesttable) ($ dbh = $ id, $ id + +;) $ = DBI-> connect ($ data_source, "HSimpson", "Doh", (AUTOCOMMIT => 1)) | | die "No se pudo conectar a db \ n"; searchHandle $ = $ dbh-> prepare ( "SELECT * FROM EPAL"); insertHandle $ = $ dbh-> prepare ( "insertar valores en EPAL (?,?,?,?,?,?,?,?)");) La función doAdd utiliza tres funciones auxiliares simples (owntype, wanttype, getinterests) para obtener información del usuario. La getinterests función repetidamente pide al usuario hasta que los datos que definen cinco intereses se han introducido correctamente, devuelve una lista con los números de identificación correspondiente. Tenga en cuenta la llamada a la función de ejecutar, lo que especifica tres argumentos explícitos y las cinco matriz de elemento de interés. Esto coincide con los requisitos de ocho argumentos - después de todo, Perl combina todos los argumentos en una lista única de todos modos, y luego se divide por los argumentos dentro de la función. doAdd sub (my ($ usted, el deseo, $ correo electrónico, @ intereses); $ you = owntype; $ deseo = wanttype; @ intereses = getinterests; print "Su dirección de correo electrónico:"; $ email = La función de búsqueda similar utiliza las funciones auxiliares (owntype, wanttype y getintersts) para obtener los datos que caracterizan el buscador. A continuación, ejecuta la consulta SQL: "todo lo que seleccionar de la EPAL. Cada registro se lee en una lista ($ searchHandle-> fetchrow_array). Los datos recuperados luego se cotejarán con los datos de la solicitud (algunos de espalda inusuales 'de Perl a pruebas condicionales frente "se ilustran en este código). un artículo presentado por Michael Barrbay Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito. Importante: Este artículo "ejemplo de bases de datos", fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.
|
|||||
| Online: 263 users browsing the articles directory |
|
|