Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> PHP /MySQL Programmazione >> .

MySQL Perl DBI Tutorial

Una delle caratteristiche più potenti di Perl è la sua capacità di elaborare , analizzare , manipolare e formattare il testo e dati , rendendolo un linguaggio ideale per lo sviluppo di applicazioni di database . Il Perl Database Interface ( DBI ) Modulo rende facile da collegare e utilizzare una vasta gamma di sistemi di database , tra cui MySQL . Oltre a Perl , il Perl :: modulo DBI e DBD :: driver di database mysql deve essere installato sul sistema in cui gli script siano sviluppati ed eseguiti . La maggior parte delle funzionalità di MySQL si può accedere attraverso il driver MySQL per Perl DBI :: . Connessione al server MySQL

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