Database di esempio
Questo esempio illustra l'utilizzo di base del modulo Perl DBI. Il database contiene i record di persone che desiderano partecipare in una e-mail-based 'di servizio pen-pal'. Abbonati forniscono il proprio indirizzo di posta elettronica, alcuni dati personali e una serie di interessi scelti da un insieme predefinito di circa 100 possibili argomenti. Le ricerche possono essere effettuate per gli abbonati di altri che condividono alcuni interessi comuni, e di soddisfare altri vincoli. Il database è solo una tabella, le righe caratterizzano gli abbonati a questo 'servizio E-Pal'. Ogni abbonato ha un indirizzo e-mail (assunto per semplicità per adattarsi in un campo di 32 caratteri), questo deve essere unico, e serve come chiave primaria. Abbonati normalmente si identificano come maschio o femmina, ma non può scegliere di specificare il loro genere (nel qual caso essi sono classificati come 'e-persone'). Gli abbonati possono specificare le limitazioni sul tipo di persona con cui si desidera corrispondere (specificando maschio, femmina, e-persona o qualsiasi altro). Per semplicità, gli interessi di un abbonato sono rappresentati utilizzando cinque campi di numeri interi distinti. La tabella è la seguente definizione: CREATE TABLE EPAL (email varchar (32) NOT NULL, tipo varchar (8) NOT NULL, voglio varchar (8) NOT NULL, interest1 numero (4), interest2 numero (4), interest3 numero (4), interest4 numero (4 ), interest5 numero (4), CONSTRAINT id_pkey PRIMARY KEY (email), type_check CHECK CONSTRAINT (di tipo in ( 'MALE', 'female', 'EPERSON')), CHECK CONSTRAINT want_check (vogliono in ( 'MALE', 'FEMMINA ',' EPERSON ',' ALCUNA '))); I problemi di 'controllo', non sono particolarmente importanti e possono essere omesse se il database che si utilizza non supporta tali vincoli, il codice del programma in sostanza, duplica questi controlli. Il programma di esempio è una standalone lettura dei dati Perl programma dalla tastiera e lavorare direttamente con il database. Comandi possono essere dati al programma per aggiungere i record al database o per effettuare ricerche. Il codice potrebbe essere adattato per formare uno script CGI che i dati inseriti nei moduli accettati HTML, questo si tradurrebbe in un servizio web-based-service E Pal - qualcosa di più utile di questa versione standalone. Inserimento dei dati molto simili sono necessari per l'aggiunta di registrazione e ricerche. Gli utenti devono inserire il proprio 'tipo', il 'tipo' di persona con la quale vogliono corrispondere, e devono selezionare cinque interessi dalla lista degli interessi predefiniti: se un record viene da aggiungere, i dati di input deve includere anche una e-mail indirizzo. I criteri per una partita di successo nella ricerca sono: Il valore di 'tipo' nel record soddisfa i 'desideri' esigenza di una richiesta - con l'override che una domanda 'volete = qualsiasi' corrisponde a qualsiasi valore nel campo Tipo. Il 'tipo' specificato nella richiesta di ricerca soddisfa i 'desideri' obbligo di cui il record - ancora una volta con 'qualsiasi' essere accompagnato da tutti i tipi di possibile richiesta. I due gruppi di interessi hanno un non-zero intersezione (interessi sono rappresentati come numeri nell'intervallo 1-100, non sono necessariamente ordinate). Questi criteri di corrispondenza sono difficili da esprimere, come una condizione di selezione SQL, è più facile per il programma per recuperare tutti i record e si applicano i criteri di programmazione. Il programma utilizza una serie di variabili globali, e ogni subroutine ha variabili locali. Dimensione L'po 'più grandi del programma aumenta il rischio di utilizzo di errori risultanti dalla dichiarazione implicita delle variabili, o l'uso di variabili non inizializzate. Vale la pena cambiare il modo di dell'interprete Perl in modo che tutte le variabili devono essere dichiarate. Specificando l'uso rigoroso della direttiva '' all'inizio del programma rende questo cambiamento. La linea principale che invoca la routine di inizializzazione che crea una connessione al database e set up table. La funzione principale è quindi un 'menu selezionare' di gestione ciclo comandi inseriti dall'utente. I comandi sono gestiti 'add', 'search', 'list' (elenco contenuto della lista di interesse) e 'quit'. Il codice è: initialize; while (1) (print $ cmd mia; "Inserisci comando (aggiungere, ricerca, elenco (interessi), uscire):"; $ cmd = La routine di inizializzazione crea un hash che associa argomento di interesse per il numero identificativo. Gli utenti devono inserire i loro interessi e li hanno controllati, qui, l'hash serve come un sistema di ricerca più veloce rispetto all'elenco originale. Gli altri compiti per la routine di inizializzazione stanno aprendo una connessione al database e la preparazione sia di una semplice query SQL di selezione e di una dichiarazione più elaborata SQL con parametri che saranno utilizzati per inserire i record. L'istruzione INSERT richiede otto valori ad essere vincolati - indirizzo e-mail 'tipo', 'voglio' e cinque gli identificatori di interesse. inizializzare sub (my ($ id, $ di interessi); $ id = 0; foreach $ interesse (@ interestlist) ($ interesse interesttable) ($ id = $ dbh; $ id + +;) $ = DBI-> connect ($ data_source, "HSimpson", "Doh", (AutoCommit => 1)) | | die "Impossibile connettersi al db \ n"; searchHandle $ = $ dbh-> prepare ( "SELECT * FROM EPAL"); insertHandle $ = $ dbh-> prepare ( "INSERT INTO EPAL VALUES (?,?,?,?,?,?,?,?)");) La funzione doAdd utilizza tre semplici funzioni di supporto (owntype, wanttype, getinterests) per ottenere l'input dell'utente. La funzione getinterests chiede ripetutamente fino a quando l'utente dati che definiscono cinque interessi sono stati inseriti correttamente, ma restituisce una lista con il corrispondente numero identificativo. Nota: la chiamata alla funzione di esecuzione; questa specifica tre argomenti espliciti e cinque-array elemento di interesse. Questo non corrisponde ai requisiti per otto argomenti - dopo tutto, Perl combina tutti gli argomenti in un unico elenco in ogni caso, e quindi divide gli argomenti all'interno della funzione. doAdd sub (my ($ te, il desiderio, $ email, @ interessi); $ si = owntype; $ desiderio = wanttype; @ interessi getinterests =; print "Il tuo indirizzo e-mail:"; $ email = La funzione di ricerca utilizza Allo stesso modo le funzioni di supporto (owntype, wanttype e getintersts) per ottenere dati che caratterizzano il ricercatore. Si esegue la query SQL di ricerca: 'tutto ciò che seleziona dalla tabella EPAL'. Ogni record viene letto in un elenco ($ searchHandle-> fetchrow_array). I dati recuperati vengono poi controllati contro la richiesta di dati (alcuni di back insoliti 'Perl-to-test condizionali fronte' sono illustrati in questo codice). un articolo presentato da Michael Barrbay Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni. Importante: Questo articolo è "database di esempio" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.
|
|||||
| Online: 257 users browsing the articles directory |
|
|