Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Než budete môcť vykonávať dotazy a ďalšie vyhlásenie na databáze , váš skript potrebuje nadviazať spojenie . Import modulu DBI v skripte s " pomocou DBI " :
použitie DBI ;
DBI - > connect funkcie sa pripája k databáze a vráti databázy rukoväť . Nadviazať pripojenie k lokálnej databáze , poskytujúce názov vašej databázy do zdrojového parametra , a užívateľské meno a heslo pre užívateľa MySQL skript sa bude používať pre pripojenie :
my $ DBH = DBI - > , pripojiť ( " DBI : mysql : dbname " , " užívateľ " , " heslo " ) or die " pripojenie zlyhalo : $ DBI :: errstr " ;
pripojenie k vzdialenej databáze je podobná miestne pripojenie pomocou poskytuje adresu vzdialeného hostiteľa do zdrojového parametra . V nasledujúcom príklade atribút RaiseError je nastavený na hlásenie chýb cez die ( ) v mieste " , alebo zomrieť " ručnú kontrolu doložku v predchádzajúcom príklade chybu . Atribút PrintError je zakázané . PrintError automaticky hlási chyby cez varovať ( ) , ak je povolená
my $ DBH = DBI - > connect ( " DBI : mysql : dbname , host = db.server.edu . " , " Užívateľ " , " heslo " { PrintError = > 0 , RaiseError = > 1 } ) ; .
Pred ukončením skriptu , odpojte z databázy pomocou funkcie odpojenia
$ DBH - > disconnect ( ) ;
Základné Dotazy
najčastejšie realizácii v databáze je príkaz SELECT . Vytvoriť popisovač príkazu volaním pripraviť funkciu príkazu SELECT . Napríklad , bude SELECT dotazu tabuľku so zoznamom ľudí , ktorí na prvý názov poľa pre všetky položky , kde priezvisko je " Johnson " :
my $ sth = $ DBH - > prepare ( " SELECT FROM krstné meno ľudí WHERE priezvisko = ' Johnson ' " ) ;
spustite príkaz :
$ sth - > execute ( ) ;
Načítať jeden riadok dát v čase , hash a vytlačiť výsledky :
print " dotaz na posledný meno Johnson : \\ n" ; while ( my $ resultrow = $ sth - > fetchrow_hashref ( ) ) { my $ fn = $ resultrow - > { jmeno } ; print " $ fn \\ n" ; }
Existuje niekoľko funkcií pre načítanie výsledky dotazu , ako je fetchrow_array načítať ďalšiu riadok ako pole a fetchall_hashref načítať všetky výsledky naraz do hash .
Použitie zástupných symbolov
zástupných symbolov možno použiť v príkaze pripraviť funkciu . To je užitočné v interaktívnych skriptov , kde sú hodnoty dotaz filtračné poskytnutých užívateľom , a to najmä v prípade , slučka umožňuje užívateľovi , aby predložili niekoľko otázok pred ukončením .
Napríklad zástupný symbol ( otáznik ) poskytuje miesto , kde budú poskytnuté vstup užívateľa , keď je príkaz vykonaný :
my $ sth = $ DBH - > prepare ( " SELECT * FROM ľudia WHERE priezvisko = ? " ) or die " Chyba vyhlásenie : " . $ DBH - > errstr ;
while opakovane vyzve užívateľa na zadanie priezvisko :
tlače " Vyhľadať priezvisko " ; while ( $ priezvisko = < > ) { žuť $ priezvisko , moja @ výsledky ;
vyhlásenie pripravené skôr sa vykonáva , s $ Priezvisko poskytnuté ako parameter . Tento parameter bude vložený do výkazu dotazu na miesto otáznika zástupný symbol :
$ sth - > execute ( $ Priezvisko ) or die " Chyba vyhlásenie : " . $ Sth - > errstr ;
Výsledky , ak existujú , sú vytlačené :
if ( $ STH - > riadkov == 0 ) { print " Žiadne výsledky pre ` $ priezvisko . " \\ n \\ n" ; }
while ( @ výsledky = $ sth - > fetchrow_array ( ) ) { my $ jmeno = $ výsledky [ 1 ] ; my $ vek = $ výsledky [ 3 ] ; print " $ jmeno $ priezvisko ( $ veku ) \\ n" ; }
údajov rukoväť je upratať metódou ciele , a slučka pokračuje : klipart
$ sth - > povrchovú úpravu ; tlačiť " Vyhľadať priezvisko " ; }
Pridávanie , aktualizácia a mazanie záznamov
aktualizácie , vložky a odstráni je možné spustiť jednoducho pomocou funkcie robiť . Napríklad :
$ DBH - > to ( " INSERT INTO ľudí ( krstné meno , priezvisko , vek ) VALUES ( ' Bob ' , ' Johnson ' , 32 ) " ) ; $ DBH - > robiť ( " UPDATE ľud krstné meno = ' Robert ' , kde krstné meno = " undef , " Bob " ) ; $ DBH - > to ( " ? DELETE FROM ľudia WHERE priezvisko = ' Johnson ' " ) ;
Stavebné a Správa databázy
funkcie správy databázy je vykonaný pomocou funkcie func pomocou databázy spracovávať získané zo spojenia :
$ DBH - > func ( " createdb " , $ dbname , ' admin ' ) ; $ DBH - > func ( " dropdb " , $ dbname , ' admin ' ) ;
servera môže byť tiež načítané a vypnúť . Táto funkcia je užitočná pre zjednodušenie a automatizáciu úloh správy databázových systémov . Dostatočné oprávnenia sú potrebné pre tieto akcie .
Databáza tabuľka vytvárať a meniť pokyny môžu vykonať pomocou funkcie robiť . Napríklad tento príkaz vytvorí tabuľku ľudí :
$ DBH - > to ( " CREATE TABLE ľudí ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY , jmeno VARCHAR ( 50 ) , priezvisko VARCHAR ( 50 ) , vek INT ) " ) ;
Vytváranie a aktualizácia existujúcej databázy je užitočná pre automatizáciu inštalácie distribuovaných aplikácií , ako je napríklad diskusných fór , fotogalérií a blogy
.