Dator > mysql Perl DBI tutorial

  • mysql Perl DBI tutorial


  • En av de mest kraftfulla funktionerna i Perl är dess förmåga att behandla , tolka , bearbeta och formatera text och data , vilket gör det till en idealisk språk för att utveckla databasapplikationer. Perl Database Interface ( DBI ) Modul gör det enkelt att ansluta till och använda ett brett spektrum av databassystem , inklusive MySQL . Utöver Perl , Perl : : DBI -modul och DBD : : mysql databas drivrutin måste installeras på systemet där de skript utvecklas och genomförs . De flesta av funktionerna i MySQL kan nås via MySQL drivrutin för Perl : : DBI .

    Ansluta till MySQL server

    Innan du kan köra frågor och andra uttalanden på en databas , behöver din script för att upprätta en anslutning . Importera DBI modul i ditt skript med " användning DBI :

    använda DBI ,

    DBI-> Anslut funktion ansluter till en databas och returnerar en databas handtag . Upprätta en anslutning till en lokal databas , vilket ger namnet på din databas i parametern source , och användarnamn och lösenord för MySQL -användare dina skript kommer att användas för anslutningen :

    min $ dbh=DBI-> connect ( " DBI : mysql : dbname " , " användare " , " lösenord " ) or die " Anslutning misslyckades : $ DBI : : errstr "

    Ansluta till en fjärrdatabas liknar lokal anknytning genom att fjärrvärden adressen i parametern source . I följande exempel är RaiseError attributet att rapportera fel via dö ( ) i stället för " eller dö " manuell felkontroll klausul i föregående exempel . Den PrintError attributet är inaktiverad . PrintError rapporter automatiskt fel via varna () när aktiverat

    min $ dbh=DBI-> kontakt ( . " DBI : mysql : dbname ; host=db. server. edu ", " användare " , " lösenord ' , { PrintError=> 0 , RaiseError=> 1 } ) ,

    innan skriptet avslutas , kopplar du från databasen med hjälp av koppla funktionen .

    $ dbh-> Koppla () ;

    Grundläggande frågor

    Den vanligaste sats som körs på en databas är SELECT-uttrycket. Skapa ett uttalande handtag genom att anropa förbereda funktion med SELECT-uttrycket. Till exempel , denna SELECT kommer att fråga en tabell där människor för det första namnet villkor för alla poster där efternamnet är " Johnson " :

    min $ sth=$ dbh-> förbereda ( " SELECT förnamn FRÅN folk där efternamn=' Johnson '");

    Kör uttalande :

    $ STH-> execute ( ) ;

    Hämta en rad med data i en tid som en hash och skriva ut resultatet :

    print " Query för efternamn Johnson : \ n ";
    medan ( min $ resultrow=$ STH-> fetchrow_hashref ()) {
    min $ fn=$ resultrow-> { förnamn } ;
    print " $ fn \ n ";
    }

    Det finns flera funktioner för att hämta sökresultaten , till exempel fetchrow_array att hämta nästa rad som en matris och fetchall_hashref att hämta alla resultat på en gång i en hash .

    Använda platshållare

    Platshållare kan användas i meddelandet förbereda funktionen . Detta är användbart interaktivt skript där fråga filter värden som användaren , särskilt om en slinga ger användaren möjlighet att skicka flera förfrågningar innan du avslutar .

    Till exempel ger platshållare ( frågetecknet ) den plats där användardata kommer att lämnas när satsen körs :

    min $ sth=$ dbh-> förbereda ( " SELECT * FROM människor där efternamn=? " ) or die " Statement felmeddelande: " . $ dbh-> errstr ;

    en while-slinga flera gånger ber användaren om ett efternamn :

    print " Sök efter efternamn : " ;
    medan ( $ efternamn=<> ) {
    chomp $ efternamn ,
    my @ resultaten ,

    som utarbetats tidigare körs med $ efternamn tillhandahålls som en parameter . Denna parameter kommer att införas i frågan uttalande i stället för frågetecken platshållare :

    $ STH-> execute ( $ efternamn ) eller dö " Statement felmeddelande: " . $ STH-> errstr ;

    Resultaten eventuella skrivs ut :

    if ( $ STH-> rader == 0 ) {
    print " Inga träffar för " $ efternamn " . \ n \ n " ;
    }

    medan ( @ resultat=$ STH-> fetchrow_array ()) {
    min $ fornamn=$ resultat [ 1 ] ,
    min $ ålder=$ resultat [ 3] ,
    print " $ fornamn $ efternamn ( $ ålder ) \ n ";
    }

    uttalande handtaget är snygg med finish metoden , och loopen fortsätter :

    $ STH-> finish ,
    print " Sök efter efternamn : " ;
    }

    Lägga till, uppdatera och radera Records

    Uppdateringar , skär och tar bort kan utföras enkelt genom att använda fungerar . Till exempel :

    $ dbh-> göra ( " INSERT INTO personer ( förnamn , efternamn , ålder ) VALUES (' Bob ', ' Johnson ' , 32 )");
    $ dbh-> göra ( " UPDATE människor som förnamn="Robert ", där förnamn=? " , undef , " Bob " ) ;
    $ dbh-> göra ( "Ta bort från människor där efternamn=' Johnson ' " ) ,

    bygga och sköta en databas

    Databas administration utförs med funk -funktionen med hjälp av databasen handtaget från anslutningen :

    $ dbh-> funktion ( " createdb " , $ dbname , ' admin ' ) ;
    $ dbh-> funktion ( " dropdb " , $ dbname , ' admin ' ) ;

    Servern kan också laddas om och avstängning. Denna funktion är användbart för att förenkla och automatisera databassystem administrativa uppgifter. Tillräcklig behörighet krävs för dessa åtgärder .

    databastabell skapa och ändra rapporter kan utföras med fungerar . Till exempel skapar detta uttalande folket tabellen :

    $ dbh-> göra ( " CREATE TABLE personer ( id INT NOT NULL AUTO_INCREMENT primärnyckel, förnamn VARCHAR (50 ) , efternamn VARCHAR (50 ) , ålder INT )");

    Skapa och uppdatera befintliga databaser är användbart för att automatisera installationen av distribuerade applikationer såsom diskussionsforum , fotogallerier och bloggar .


Previous:Vilka är fördelarna med Java uppgradera ? Next:hur man skapar en hish poäng hålla program i Python





Relaterade artiklar


  • hur man uppgraderar en Intel Celeron 2,53 GHz till en dual core
  • som processorer kommer att arbeta i eMachines t3104?
  • hur man kan anpassa en Trinitron bildskärm
  • min Logitech headset 350 fungerar inte
  • thinkpad 600x 2645 9eu specifikationer
  • hur man kan förbättra prestanda på en HP Tablet
  • funktioner i Fujitsu LifeBook v1020
  • hur man ändrar en HP LaserJet 4345 överföringsrullen
  • Intel t2500 processor Teknisk info
  • hur man ansluter en CD / RW-enhet och DVD-läsare till ett moderkort