Prima di poter eseguire query e altre dichiarazioni su un database , lo script ha bisogno di stabilire una connessione. Importare il modulo DBI nello script con " uso DBI " : 
 
 use DBI ; 
 
 - > DBI funzione connect si connette a un database e restituisce un handle di database . Stabilire una connessione a un database locale , fornendo il nome del vostro database nel parametro sorgente e il nome utente e la password per l' utente MySQL script utilizzeranno per la connessione : 
 
 my $ dbh = DBI - > , connect ( ' DBI : mysql : dbname ', ' utente' , 'password' ) or die " connessione non riuscita: $ DBI :: errstr " ; 
 
 connessione a un database remoto è simile a una connessione locale fornendo l' indirizzo del computer remoto nel parametro source . Nell'esempio seguente , l'attributo RaiseError è impostato per segnalare gli errori tramite die ( ) in luogo del " or die" errore manuale clausola di verifica nell'esempio precedente . L'attributo PrintError è disabilitato . PrintError segnala automaticamente gli errori tramite warn ( ) quando è abilitata 
 
 my $ dbh = DBI - > connect ( ' DBI : mysql : dbname ; host = db.server.edu ' . , ' Utente' , 'password' , { PrintError = > 0 , RaiseError = > 1} ) . 
 
 Prima di uscire dallo script , disconnettersi dal database utilizzando la funzione di disconnessione 
 
 $ dbh - > disconnect ( ) ; 
 query di base 
 
 l'affermazione più comune eseguito su un database è l'istruzione SELECT . Creare un handle di istruzione chiamando la funzione prepare con l'istruzione SELECT . Per esempio, questo SELEZIONA interrogherà un elenco tavolo di persone per il primo campo nome per tutte le voci in cui il cognome è " Johnson " : 
 
 my $ sth = $ dbh - > prepare ( " SELECT FROM cognome persone WHERE cognome = ' Johnson ' "); 
 
 eseguire l'istruzione : 
 
 $ sth - > execute (); 
 
Recupera una riga di dati alla volta, come un hash e stampare i risultati : print
 "Query per cognome Johnson : \\ n"; while ( my $ resultrow = $ sth - > fetchrow_hashref ( ) ) {my $ fn = $ resultrow - > { cognome }; print " $ fn \\ n"; } 
 
 Ci sono diverse funzioni per recuperare i risultati della query , come fetchrow_array per andare a prendere il ferro successivo come un array e fetchall_hashref a prendere tutti i risultati in una sola volta in un 
 hash . Usare segnaposti 
 
 segnaposto può essere utilizzata nella dichiarazione funzione di preparare. Questo è utile in script interattivi in cui i valori dei filtri di query vengono forniti dall'utente , in particolare se un loop consente all'utente di inviare query multiple prima di uscire. 
 
 Per esempio , il segnaposto ( il punto interrogativo ) è il luogo in cui sarà fornito l'input dell'utente quando viene eseguita l'istruzione : 
 
 my $ sth = $ dbh - > prepare ( ' SELECT * FROM persone WHERE cognome = ?') or die " errore di dichiarazione:" . $ dbh - > errstr ; 
 
Un ciclo while ripetutamente richiede all'utente un cognome : print
 "Cerca il cognome : " ; while ( $ cognome = < > ) { chomp $ cognome , i miei risultati di @ ; 
 
 La dichiarazione preparata in precedenza viene eseguito , con $ cognome fornito come parametro. Questo parametro verrà inserito l'istruzione della query al posto del segnaposto punto interrogativo : 
 
 $ sth - > execute ( $ cognome ) or die " errore di dichiarazione:" . $ sth - > errstr ; 
 
 I risultati , se del caso , vengono stampati : 
 
 if ($ sth -> file == 0 ) {print " Non ci sono partite per ` $ cognome '\\ n \\ n "; . } 
 
 mentre ( @ results = $ sth - > fetchrow_array ( ) ) {my $ Nome = $ risultati [1 ] ; la mia età $ = $ risultati [3 ] ; print " $ cognome $ cognome ( $ età) \\ n"; } 
 
 l' handle di istruzione è riordinato con il metodo di finitura , e il ciclo continua : 
 
 $ sth - > finitura ; print " Cerca il cognome : ";} 
 aggiunta, aggiornamento ed eliminazione di record 
 
 aggiornamenti , inserimenti ed eliminazioni possono essere eseguite semplicemente utilizzando la funzione do . Per esempio : 
 
 $ dbh - > do ( " INSERT INTO persone ( nome, cognome , età) values (' Bob ', ' Johnson ' , 32 )"); $ dbh - > do ( " UPDATE persone impostare Nome = ' Robert' dove = Campi " , undef , " Bob ? " ) ; $ dbh - > do ( " DELETE FROM persone WHERE cognome = ' Johnson ' "); 
 costruzione e gestione di un database 
 funzioni di amministrazione del database 
 vengono eseguiti con la funzione func utilizzando gestire il database ottenuto dalla connessione : 
 
 $ dbh - > func ( " createdb " , $ dbname , 'admin '); $ dbh - > func ( " dropdb " , $ dbname , 'admin '); 
 
 Il server può anche essere ricaricato e arrestato. Questa funzionalità è utile per semplificare e automatizzare le attività di amministrazione dei sistemi di database . Privilegi sufficienti sono necessari per queste azioni . 
 
 Tabella CREATE DATABASE e ALTER può essere eseguita con la funzione do . Ad esempio , l'istruzione seguente crea la tabella persone : 
 
 $ dbh - > do ( " CREATE TABLE persone ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY , Nome VARCHAR ( 50 ) , cognome VARCHAR ( 50 ) , età INT ) "); 
 
 Creazione e aggiornamento di banche dati esistenti è utile per automatizzare l'installazione di applicazioni distribuite , come forum di discussione , gallerie di foto e blog 
 
 .
              
Programmazione © www.354353.com